HashSet與TreeSet的區別

2021-08-03 09:24:31 字數 545 閱讀 1219

1、hashset與treeset介面的一點不同,hashset  儲存的資料是無序的,treeset儲存的資料是有序的,所以如果要想儲存的資料有序應該使用treeset子類。

2、利用treeset儲存自定義類物件的時候,自定義所在的類一定要實現comparable介面,如果沒有實現這個介面那麼就無法區分大小關係,而且在treeset中如果要進行排序,那麼就要將所有的字段都進行比較,就是說在treeset中是依靠comparato()方法返回的是不是0來判斷是不是重複元素的。

3、如果是hashset子類,那麼其判斷重複資料的方式不是依靠的comparable介面而是object類之中的兩個方法:(1)取得物件的雜湊碼 hashcode();(2)物件比較:equals(); 這倆個方法均不需要自己編寫,在eclipse裡面可以使用右鍵source 選擇自動生成。就像生成getter 和setter 方法一樣。

總結:treeset 依靠的是comparable 來區分重複資料;

hashset 依靠的是hashcode()、equals()來區分重複資料

set 裡面不允許儲存重複資料。

HashSet與TreeSet的比較

1.treeset 是二叉樹實現的,treeset中的資料是自動排好序的,不允許放入null值 2.hashset 是雜湊表實現的,hashset中的資料是無序的,可以放入null,但只能放入乙個null,兩者中的值都不能重複,就如資料庫中唯一約束 3.hashset要求放入的物件必須實現hashc...

hashSet與treeSet的去重原理

地球人都知道set集合是不含重複元素的,那麼其去重原理是什麼,我們又可以做哪些用途呢?1,treeset去重原理 compareto 可以實現排序及去重 如果compareto返回0,說明是重複的,返回的是自己的某個屬性和另乙個物件的某個屬性的差值,如果是負數,則往前面排,如果是正數,往後面排 應用...

HashSet和TreeSet 的區別與分析

set是j a中乙個不包含重複元素的collection。更正式地說,set 不包含滿足e1.equals e2 的元素對e1和e2,並且最多包含乙個 null 元素。正如其名稱所暗示的,此介面模仿了數學上的 set 抽象。hashset與treeset都是基於set介面的實現類。其中treeset...