Java中Set集合的使用
阿新 • • 發佈:2019-02-11
Set類繼承了Conllection類,是一種集合類。Set的實現類有三個,下面我們會一一來說這些的不一樣。
HashSet
HashSet類按照雜湊演算法來存取集合中的物件,存取速度比較快。
1.Set中是不能出現重複資料的。
2.Set中可以出現空資料。
3.Set中的資料是無序的。
詳細見demo:
Set<String> set = new HashSet<String>(); for(int i= 0;i<6;i++){ set.add(i+""); } set.add("3"); //重複資料,不會寫入 set.add(null); //可以寫入空資料 Iterator<String> iter = set.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); //輸出是無序的 }
這段執行之後的列印輸出是:
null
3
2
1
0
5
4
LinkedHashSet
這個相對於HashSet來說有一個很大的不一樣是LinkedHashSet是有序的。LinkedHashSet在迭代訪問Set中的全部元素時,效能比HashSet好,但是插入時效能稍微遜色於HashSet。
詳細見demo:
Set<String> set = new LinkedHashSet<String>(); for(int i= 0;i<6;i++){ set.add(i+""); } set.add("3"); //重複資料,不會寫入 set.add(null); //可以寫入空資料 Iterator<String> iter = set.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); //輸出是有序的 }
輸出列印如下:
0
1
2
3
4
5
null
TreeSet
TreeSet的特點是:
1.不能寫入空資料
2.寫入的資料是有序的。
3.不寫入重複資料
詳細見demo:
Set<String> set = new TreeSet<String>(); for(int i= 0;i<6;i++){ set.add(i+""); } set.add("3"); //重複資料,不會寫入 //set.add(null); //不可以寫入空資料 Iterator<String> iter = set.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); //輸出是有序的 }
輸出列印為:
0
1
2
3
4
5