1. 程式人生 > >HashSet是如何去重的

HashSet是如何去重的

1.HashSet原理 ◦我們使用Set集合都是需要去掉重複元素的, 如果在儲存的時候逐個equals()比較, 效率較低,雜湊演算法提高了去重複的效率, 降低了使用equals()方法的次數
當HashSet呼叫add()方法儲存物件的時候, 先呼叫物件的hashCode()方法得到一個雜湊值, 然後在集合中查詢是否有雜湊值相同的物件 ◾如果沒有雜湊值相同的物件就直接存入集合,如果有雜湊值相同的物件, 就和雜湊值相同的物件逐個進行equals()比較,比較結果為false就存入, true則不存
2.將自定義類的物件存入HashSet去重複 ◦類中必須重寫hashCode()和equals()方法hashCode(): 屬性相同的物件返回值必須相同, 屬性不同的返回值儘量不同(提高效率)equals(): 屬性相同返回true, 屬性不同返回false,返回false的時候儲存。