天天看點

java學習之旅2——set

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方法