Set 集合爲集類型,集是最簡單的一種集合,存放於集中的對象不按特定方式排序,只是簡單地把對象加入集合中,類似於向口袋裏放東西。對集中存放的對象的訪問和操作是通過對象的引用進行的,因此在集中不能存放重複對象。
Set接口常用的實現類有HashSet 類與TreeSet 類。
● HashSet類實現 Set 接口,由哈希表(實際上是一個 HashMap實例)支持。它不保證 Set 的迭代順序,特別是它不保證該順序恆久不變。此類允許使用null 元素。
● TreeSet 類不僅實現了Set 接口,還實現了 java.util.SortedSet接口。因此TreeSet 類實現的Set集合,在遍歷集合時按照自然順序遞增排序,也可以是按照指定比較器遞增排序,即可以通過比較器對用TreeSet類實現的Set 集合中的對象進行排序。
1,HashSet
範例:觀察Set接口使用
importjava.util.HashSet; importjava.util.Set; public class TestDemo { public static void main(String[] args) throws Exception { Set<String>all = newHashSet<String>(); all.add("Hello") ; all.add("Hello") ; // 內容重複了 all.add("World") ; System.out.println(all); } } |
2,TreeSet
範例:使用TreeSet
importjava.util.Set; importjava.util.TreeSet; publicclassTestDemo { publicstaticvoidmain(String[] args) throwsException { Set<String>all = newTreeSet<String>(); all.add("D") ; all.add("A") ; // 內容重複了 all.add("B") ; all.add("B") ; all.add("C") ; System.out.println(all); } } |
3,集合輸出
範例:迭代輸出:Iterator
Iterator是最爲常用的集合輸出接口,在這個接口中一共定義了三個方法,但只有兩個有真正用處:
·判斷是否有下一個元素:publicboolean hasNext();
·取得下一個元素:public Enext()。
importjava.util.ArrayList; importjava.util.Iterator; importjava.util.List; publicclassTestDemo { publicstaticvoidmain(String[] args) throwsException { List<String>all = newArrayList<String>(); all.add("Hello"); all.add("Hello"); // 內容重複了 all.add("World"); Iterator<String>iter = all.iterator(); while(iter.hasNext()) { // 判斷是否有下一個元素 Stringstr = iter.next() ; System.out.print(str + "、"); } } } |
範例:foreach輸出
對於foreach輸出除了可以進行數組內容的輸出之外,也可以針對於集合完成輸出。
importjava.util.ArrayList; importjava.util.List; publicclassTestDemo { publicstaticvoidmain(String[] args) throwsException { List<String>all = newArrayList<String>(); all.add("Hello"); all.add("Hello"); // 內容重複了 all.add("World"); //通配符中是什麼數據類型,foreach的時候就用什麼類型的變量來接收集合中的元素 for(String str : all) { System.out.print(str + "、"); } } } |