【发布时间】:2012-11-16 03:39:23
【问题描述】:
我发现Java中根类Object的hashCode()方法没有实现:
public native int hashCode();
如果我有一个Object a 和一个Object b,我怎么知道a.hashCode() 和b.hashCode() 的值而不使用System.out.println()?只需通过 hashCode 实现即可。
我尝试了new 两个ArrayList 对象,令我惊讶的是hashCode() 的值是相同的:它们都是1。
【问题讨论】:
-
可能是内存地址。你想做什么?或者您只是好奇它是如何实现的?
-
@nbrooks :它不是重复的
-
它为您提供与
System.identityHashCode(x)相同的值,如果对象的 hashCode() 已被覆盖,这将很有用。 -
对“可能重复”的公认答案甚至没有提到 Object 类——它怎么可能回答这个问题?人们将很多东西标记为重复,这让我很恼火。是否可以将其取消标记为重复项或将其正确链接到回答相同问题的重复项,例如:stackoverflow.com/questions/2237720/…