TreeSet和HashSet 去除重複資料的不同

2021-08-17 17:33:18 字數 698 閱讀 7391

treeset去重

首先treeset可以實現排序

@org.junit.test

public

void

testhashset()

if(o1.getage() > o2.getage())else

}});

}/**

public person(string name, int age,int money)

這是person類的構造器

*/

在treeset建立的時候,重寫了以下**

1.

treesettreeset = new treeset<>(new comparator() 

});

這個方法中,return 0;是無法新增的

2.當然也可以在person類中實現comparable介面,重寫介面中的compareto方法,具體實現和上面的方法沒有太大區別

hashset

hashset是通過hashmap實現的,

hashcode()和equals()是hashmap用的, 因為無需排序所以只需要關注定位和唯一性即可

修改person類中的hashcode()和equals()方法,兩個都要修改

set中的hashSet和treeSet相關概念

簡而言之,帶hashcode的資料集,都犧牲空間帶有乙個hash對映表,能進行快速的匹配查詢。帶tree的資料集可以認為是一棵有序的樹形結構。那麼,hashcode結構不再具體詳細說明。下來詳細說下treeset中的排序問題,分成自然排序,和自定義排序 1.自然排序是讓set內部的元素自身實現com...

HashSet和TreeSet 的區別與分析

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

HashSet和TreeSet使用方法的區別解析

一.問題 1.hashset,treeset是如何使用hashcode 和equal 方法的 2.treemap,treeset中的物件何時以及為何要實現comparable介面?二.回答 1.hashset是通過hashmap實現的,treeset是通過treemap實現的,只不過set用的只是m...