HashSet是實作Set介面的物件,Set容器中的物件都是唯一的
HashSet
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
public class test
{
public static void main(String [] argv)
{
Set<String> set = new HashSet<String>();
set.add("張三");
set.add("王五");
set.add("李四");
set.add("張三");
//建立Iterator,Iterator的是針對在不同的物件(陣列、鏈結、雜湊集合)的公開存取介面
//Iterator會先到物件內部收集資料再回傳到Iterator
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
}
這段程式會顯示出:李四 王五 張三。
其中張三輸入了兩次,所以第二次輸入張三時,會判定已有這個物件
至於順序不一樣是因為HashSet的順序是利用Hash Table排序過的,所以會與當初輸入時不一樣
如果要讓set順序與輸入時相同,可以使用LinkedHashSet
import java.util.Set;
import java.util.LinkedHashSet;
import java.util.Iterator;
public class test
{
public static void main(String [] argv)
{
Set<String> set = new LinkedHashSet<String>();
set.add("張三");
set.add("王五");
set.add("李四");
set.add("張三");
//建立Iterator,Iterator的是針對在不同的物件(陣列、鏈結、雜湊集合)的公開存取介面
//Iterator會先到物件內部收集資料再回傳到Iterator
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
}
他的走訪就會跟LinkedList一樣