摘自:Head First Java
當你把對象加入HashSet時,它會使用對象的hashcode值來判斷對象的加入的位置。但同時也會與其他已經加入的對象的hashcode進行比較,如果沒有相符的hashcode,HashSet就會假設新對象沒有重複出現。
也就是說,如果hashcode是相異的,則HashSet會假設對象不可能是相同的。
因此,你必須override過hashCode方法來確保對象有相同的值。
但有相同hashCode()的對象也不一定相等,如還會調用equals方法來檢查hashcode相等的對象是否真的相同。
散列算法及其應用:http://www.iwms.net/n923c43.aspx