HashMap總結

  1. hash%length = hash&(length - 1)的前提是length爲2的n次方;
  2. length爲2的n次方,可以減少hash碰撞,因爲length-1的二進制表示全爲1,每一位都能&1,不同位置上不產生hash碰撞;
  3. 模運算之前,需先將key生成的hashCode進行 高16位異或運算 或 低16位無符號右移,目的在於減少hash碰撞(hashCode的後n位爲0,hash&(length - 1)的結果都爲0)。
  4. 如何設計可作爲hashMap Key的類?equals相等,hashcode一定相等;hashcode相等,equals不一定相等;hashcode不相等,equals一定不相等;equals不相等,hashcode不一定不相等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章