com.google.common.collect.Ordering.arbitrary在64位地址空间中是否可靠?

时间:2012-02-07 22:04:41

标签: java comparable

com.google.common.collect.arbitrary()声称通过System.identityHashCode(Object)生成任意对象的可靠比较。但是,由于hashCode是一个32位的数量,我没有看到它如何在64位地址空间中工作,其中可能有超过2 ** 32个对象实例。我的怀疑主义是否合理?

1 个答案:

答案 0 :(得分:1)

源代码显示,在不同对象的两个标识哈希码之间发生冲突的情况下,比较器回退到将每个对象与计数器相关联的映射,每当新对象存储在映射中时计数器就会递增

请参阅http://docs.guava-libraries.googlecode.com/git-history/v11.0.1/javadoc/src-html/com/google/common/collect/Ordering.html#line.200