HashSet、LinkedHashSet、TreeSet使用區別
阿新 • • 發佈:2019-01-26
HashSet:雜湊表是通過使用稱為雜湊法的機制來儲存資訊的,元素並沒有以某種特定順序來存放;
LinkedHashSet:以元素插入的順序來維護集合的連結表,允許以插入的順序在集合中迭代;
TreeSet:提供一個使用樹結構儲存Set介面的實現,物件以升序順序儲存,訪問和遍歷的時間很快。
例項程式碼:
輸出效果:package com.test; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.TreeSet; public class SetDemo { public static void main(String[] args) { HashSet<String> hs = new HashSet<String>(); hs.add("B"); hs.add("A"); hs.add("D"); hs.add("E"); hs.add("C"); hs.add("F"); System.out.println("HashSet 順序:\n"+hs); LinkedHashSet<String> lhs = new LinkedHashSet<String>(); lhs.add("B"); lhs.add("A"); lhs.add("D"); lhs.add("E"); lhs.add("C"); lhs.add("F"); System.out.println("LinkedHashSet 順序:\n"+lhs); TreeSet<String> ts = new TreeSet<String>(); ts.add("B"); ts.add("A"); ts.add("D"); ts.add("E"); ts.add("C"); ts.add("F"); System.out.println("TreeSet 順序:\n"+ts); } }
HashSet 順序:
[D, E, F, A, B, C]
LinkedHashSet 順序:
[B, A, D, E, C, F]
TreeSet 順序:
[A, B, C, D, E, F]