Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么任何 Int 上的 Scala 方法 hashCode() 返回相同的数字
因为这就是定义整数的 hashCode 的方式。
它很好地履行了合同:
如果根据方法两个对象相等equals(Object),则对两个对象中的每一个调用该hashCode方法必须产生相同的整数结果。
equals(Object)
hashCode
最重要的是,它遵守建议
不要求如果两个对象根据equals(java.lang.Object)方法不相等,则对两个对象中的每一个调用该hashCode方法必须产生不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同的整数结果可能会提高哈希表的性能
equals(java.lang.Object)
事实上,这是一个完美哈希函数的例子。