var set = Collections.synchronizedSet(new HashSet<Integer>());
可以這樣來獲得一個同步的集合。
對于HashSet, for循環周遊要比疊代器周遊快。
Hashset是無序的,LinkedHashSet按插入順序排序, TreeSet是基于compare to方法大小比較排序(元素需要實作Comparable接口)。
HashSet和LinkedHashSct判定元素重複的原則:
-判定兩個元素的hashCode傳回值是否相同,若不同,傳回false-若兩者hashCode相同,判定equals方法,若不同,傳回false;否則傳回true;(HashSet的元素判定規則隻和hashCode、 equals這2個方法有關,和compareTo方法無關。)
這3個方法三位一體,equals ()是相同的;hashCode()是相同的;toString()也應該是相同的。重寫的話應該同時重寫這三個方法。
TreeSet判定元素重複的原則:
需要元素繼承自Comparable接口-比較兩個元素的compareTo方法