Java集合(五) Set 添加元素


Java中Set集合是如何實現添加元素保證不重復的?

  Set集合是一個無序的不可以重復的集合。今天來看一下為什么不可以重復。

  Set是一個接口,最常用的實現類就是HashSet,以HashSet為例。

  HashSet類實現了Set接口, 其底層其實是包裝了一個HashMap去實現的。HashSet采用HashCode算法來存取集合中的元素,因此具有比較好的讀取和查找性能。

HashSet 添加元素過程

  向 HashSet 添加元素,首先調用元素所在類的 hashCode() 方法,計算元素的哈希值,算出在 hashset 底層數組的存放位置。

  判斷數組該位置上是否已經有元素。

    如果該位置沒有其他元素,則元素添加成功。

    如果該位置,有其他元素,則比較兩個元素的 hash 值是否相同;

        如果 hash值不相同,則元素添加成功, 以鏈表的形式存儲;

        如果 hash值相同,再用 該類的equal() 方法比較

          equal  返回 true, 元素添加失敗,替換了該元素

          equal 返回false 元素添加成功, 並以鏈表的節點形式存儲

  更詳細看:https://www.cnblogs.com/wupeixuan/p/8858816.html

【1】:https://www.cnblogs.com/wupeixuan/p/8858816.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM