古詩詞大全網 - 成語解釋 - java裏面的集合框架的set用法應該怎麽做

java裏面的集合框架的set用法應該怎麽做

1、Set:它是無序、不重復、該接口中的方法和Collection接口中的方法壹致。

繼承它的子類有HashSet和TreeSet。

HashSet:底層是哈希表數據結構,不同步的它保證元素的唯壹性的方式。

根據元素的兩個方法來完成的,壹個是HashCode、壹個是equals方法,只有當hashCode方法算出哈希值相同時,會再次判斷兩個元素的equals方法是否為true,如果是true說明兩個元素相同,不存儲,所以往hashSet集合中存儲自定義對象時,要覆蓋hashCode,equals方法,通過自定義對象具備的特有數據定義hashCode、equals的具體實現。

treeSet:用於給集合中的額元素按照指定的順序進行排序,底層是二叉樹結構,線程是不同步的。

它保證元素的唯壹性,就是通過元素對象的比較方法返回值來確定的,如果為0,則視為兩個元素時相同的元素,不存儲。

treeset的兩種排序方式:

1、讓元素自身具備比較功能,就是強制讓元素類去實現comparable接口,覆蓋compareTo方法,這時元素具備的自然排序,可是如果元素自身不具備比較功能,獲取具備的比較功能不是所需要的,這時排序方式就不能用了。

2、讓集合自身具備比較功能,需要定義比較器,其實就實現了comparetor接口的子類對象作為參數傳遞給treeSet集合的構造函數,讓treeSet集合壹創建就具備了比較功能,該子類必須要覆蓋compare方法。