寒假14:Set集合

Set集合特點:
不包含重復元素的集合
沒有帶索引的方法,所以不能使用普通for循環(huán)遍歷
HashSet:對集合的迭代順序不作任何保證

Set<String> set = new HashSet<String>();
set.add("hello");
set.add("world");
set.add("world");

for(String s : set) {
  System.out.println(s);
}
  
輸出: world hello

哈希值
哈希值是JDK根據(jù)對象的地址或者字符串或者數(shù)字算出來的int類型的數(shù)值

Object類中的 hashCode()
public int hashCode(): 返回對象的哈希碼值

同一個對象多次調用hashCode()方法返回的哈希值是相同的


例子.png

HashSet集合概述和特點:
底層數(shù)據(jù)結構是哈希表
對集合的迭代順序不做任何保證
沒有帶索引的方法,不能對普通for循環(huán)遍歷
由于是set集合,所以不包含重復元素的集合

HashSet集合保證元素唯一性源碼分析.png

哈希表默認初始長度為16,負載為0.75


哈希表存儲流程.png

LinkedHashSet集合概述和特點
哈希表和鏈表實現(xiàn)的Set接口,具有可預測的迭代次序
由鏈表保證元素有序,也就是說元素的存儲和去除順序是一致的
由哈希表保證元素唯一,也就是說沒有重復的元素

TreeSet集合概述和特點


TreeSet集合概述和特點 .png

自然排序Comparable的使用


1.png
2.png
3.png
4.png

return 1 正序
return -1 倒序
return 0 返回第一個元素

Comparator的使用


Comparator的使用.png
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容