我们如何通过它获取对象';java中的哈希代码是什么?有没有现成的方法?

我们如何通过它获取对象';java中的哈希代码是什么?有没有现成的方法?,java,object,hashcode,Java,Object,Hashcode,在java中,我们可以使用Object.hashCode()来获取对象的hashCode,反过来,我们可以使用hashCode来获取对象吗?但是怎么做呢?是否有任何现有的方法可以解决此问题?哈希代码不是这样工作的。它们是用来暗示两个物体是否相等的。从Objectjavadoc: hashCode的总合同为: 在Java应用程序的执行过程中,每当在同一对象上多次调用hashCode方法时,只要没有修改对象上的equals比较中使用的信息,hashCode方法必须始终返回相同的整数。从应用程序的一

在java中,我们可以使用
Object.hashCode()
来获取对象的hashCode,反过来,我们可以使用hashCode来获取对象吗?但是怎么做呢?是否有任何现有的方法可以解决此问题?

哈希代码不是这样工作的。它们是用来暗示两个物体是否相等的。从
Object
javadoc:

hashCode的总合同为:

  • 在Java应用程序的执行过程中,每当在同一对象上多次调用hashCode方法时,只要没有修改对象上的equals比较中使用的信息,hashCode方法必须始终返回相同的整数。从应用程序的一次执行到同一应用程序的另一次执行,该整数不必保持一致
  • 如果根据equals(Object)方法两个对象相等,那么对两个对象中的每一个调用hashCode方法必须产生相同的整数结果
  • 根据equals(java.lang.Object)方法,如果两个对象不相等,则对这两个对象中的每一个调用hashCode方法都必须产生不同的整数结果,这不是必需的。但是,程序员应该知道,为不相等的对象生成不同的整数结果可能会提高哈希表的性能
由于不同的对象可能具有相同的哈希代码,因此不存在从其哈希代码获取对象的方法。如果您有这样的需要,请务必使用
地图
并使用键存储对象。但是即使有一个
Map
每个键也只有一个值(仍然来自javadoc:Map不能包含重复的键;每个键最多只能映射到一个值)

从哪里获取?哈希代码不是唯一的,发生冲突时会发生什么情况?