好吧,仅供引用,如果对象的
hashcode,那么它对诸如
方法始终在 hashmap
、hashset
等Collection实现类有何意义? demoClass
中返回 0
。我知道它与 hashmap 或 Collection 实现的其他类的 putForNullKey
有关,但不太了解细节。我知道对于 null 对象,hascode 是 0
所以它有针对 0 hashcode 的特定方法。
@Override
public int hashCode() {
return 0;
}
最佳答案
这将使HashMap
、HashSet
和其他依赖hashCode
的集合变得非常低效,因为所有元素/条目都会被添加到同一个垃圾箱。
诸如 get()
、containsKey()
和 contains()
之类的方法将需要 O(n)
> 而不是 O(1)
。
顺便说一句,答案并不特定于 0 hashCode
。任何常量 hashCode
的行为都完全相同。
关于java - 当 hashcode() 返回零时,对 Collection 实现有何影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29362401/