1. 程式人生 > >HashSet與TreeSet的區別

HashSet與TreeSet的區別

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 裡面不允許儲存重複資料。

 


--------------------- 
作者:m0_37659184 
來源:CSDN 
原文:https://blog.csdn.net/m0_37659184/article/details/74332664 
版權宣告:本文為博主原創文章,轉載請附上博文連結!