半夜思考, 为何建议重写 equals() 方法时, 也要重写 hashCode() 方法

我说的半夜, 并非真正的半夜, 指的是在我一我的的时候, 我会去思考一些奇怪的问题.html

要理解 hashCode() 须要理解下面三个点:htm

  • hash契约
  • 哈希冲突
  • 哈希可变

第一点: hash 契约指的是两个相等的对象, 必须具备相同的哈希码 [ 逆命题不成立 ]对象

第二点: 哈希冲突指的是两个不一样的对象具备相同的 hash 值get

第三点: 哈希可变指的是 hashCode 并不保证在不一样的应用中执行中获得相同的结果博客

以上三点来自于这篇博客 [ 关于 hashCode() 你须要了解的 3 件事 ]hash

下面写一个例子, 展现若是不重写 hashCode() 方法会致使的问题, import

 

 

 

 

未完待续.方法

相关文章
相关标签/搜索