1. 程式人生 > >HashSet、LinkedHashSet、TreeSet使用區別

HashSet、LinkedHashSet、TreeSet使用區別

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]