1. 程式人生 > >java集合工具類

java集合工具類

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