java集合工具類
阿新 • • 發佈:2019-01-07
java整合工具類
Set
Set中不能有重複的值。
HashSet
HashSet判斷兩個集合元素相等的標準是兩個元素通過equals()比較相等,並且兩個元素的hashCode()相等;
當向HashSet中存入一個元素時,HashSet會呼叫該物件的hashCode()來得到hashCode值,然後根據hashCode值決定該物件的儲存位置。如果兩個元素的equals()比較為true,但是他們兩個的hashCode值不同,則會把他們插入到不同的地方,依然能夠插入成功。
- 如果兩個物件的hashCode()返回的hashCode值相同,但他們通過equals()方法比較返回的值不相同,因為hashCode值相同,HashSet將試圖把他們放到相同的位置,所以實際上會在這個位置用鏈式儲存結構來儲存多個物件。
重寫hashCode()基本規則
- 在程式執行過程中,同一個物件多次呼叫hashCode()應該返回相同的值
- 當兩個物件通過equals()比較返回true時,這兩個物件的hashCode()應該返回相等的值.
- 物件中用作equals()方法比較標準的例項變數,都應該用於計算hashCode值。
重寫hashCode()步驟
參考《瘋狂java講義中》p294