HashSet如何檢查重複

摘自:Head First Java

當你把對象加入HashSet時,它會使用對象的hashcode值來判斷對象的加入的位置。但同時也會與其他已經加入的對象的hashcode進行比較,如果沒有相符的hashcode,HashSet就會假設新對象沒有重複出現。

也就是說,如果hashcode是相異的,則HashSet會假設對象不可能是相同的。

因此,你必須override過hashCode方法來確保對象有相同的值。

但有相同hashCode()的對象也不一定相等,如還會調用equals方法來檢查hashcode相等的對象是否真的相同。

散列算法及其應用:http://www.iwms.net/n923c43.aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章