java中hashcode方法的目的是什么?

Mah*_*rma 14 java hashcode

当我们有equals(),compareTo()方法为什么hashcode()在Java中有一个方法?

如果我们使用 HashTable我们必须覆盖hashcode()方法,除快速访问随机密钥有什么特殊原因吗?如果我们覆盖该hashcode()方法,可能的实现是什么?

Java如何确保内存中的对象唯一性?


Hashcodes are typically used to enhance the performance of large collections of data.

hashing我们计算hash code.这是一项额外的任务.当我们为添加到集合的每个对象执行其他操作时.性能如何提高?

Mar*_*nik 12

您必须始终覆盖equalshashCode同时满足其相互依赖的合同.即使是最低限度的软件工程标准,在矛盾的情况下实现它们的类也是简单的破坏和不可接受的.

至于为什么会使用哈希表数据结构:因为它是随机访问键值存储的最快选择.

  • 只有当对象的哈希码合理时,它才是最快的选择.所有对象的哈希码返回0都满足合同,但会使基于哈希的集合执行得非常糟糕.用一些盲目服从合同的东西覆盖哈希码无济于事. (2认同)