hashSet與treeSet的去重原理

2021-08-19 19:45:52 字數 492 閱讀 7417

地球人都知道set集合是不含重複元素的,那麼其去重原理是什麼,我們又可以做哪些用途呢?

1,treeset去重原理:

compareto

可以實現排序及去重:如果compareto返回0,說明是重複的,返回的是自己的某個屬性和另乙個物件的某個屬性的差值,如果是負數,則往前面排,如果是正數,往後面排;

應用:類實現compareable介面,覆寫其compareto方法,根據自己的需要改變其排序及去重規則,比如person類,根據其年齡進行去重和排序

2,hashset去重原理:

1,hashcode 2,equals是否相同

兩個方法可以快速生成,hashcode是幾個屬性的hashcode共同計算的結果

(基本資料型別的實現類生成的hashcode是其拆箱後的值的比較,跟引用資料型別的規則不同,如integer類)

應用:從網上過來的資料有的不符合要求,可以通過覆寫hashcode和equals方法改變其去重規則,進行自定義去重;

HashSet與TreeSet的區別

1 hashset與treeset介面的一點不同,hashset 儲存的資料是無序的,treeset儲存的資料是有序的,所以如果要想儲存的資料有序應該使用treeset子類。2 利用treeset儲存自定義類物件的時候,自定義所在的類一定要實現comparable介面,如果沒有實現這個介面那麼就無法...

HashSet與TreeSet的比較

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

HashSet和TreeSet 的區別與分析

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