标签: java comparable
com.google.common.collect.arbitrary()声称通过System.identityHashCode(Object)生成任意对象的可靠比较。但是,由于hashCode是一个32位的数量,我没有看到它如何在64位地址空间中工作,其中可能有超过2 ** 32个对象实例。我的怀疑主义是否合理?
com.google.common.collect.arbitrary()
System.identityHashCode(Object)
答案 0 :(得分:1)
源代码显示,在不同对象的两个标识哈希码之间发生冲突的情况下,比较器回退到将每个对象与计数器相关联的映射,每当新对象存储在映射中时计数器就会递增
请参阅http://docs.guava-libraries.googlecode.com/git-history/v11.0.1/javadoc/src-html/com/google/common/collect/Ordering.html#line.200