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.
在 Effective Java Item 9 (Always override hashCodewhen you override equals) 中说
hashCode
equals
Java 平台库中的许多类,例如 String、Integer 和 Date,在它们的规范中包含由它们的 hashCode 方法返回的确切值作为实例值的函数。这通常不是一个好主意,因为它严重限制了您在未来版本中改进散列函数的能力。
这是什么意思 ?
这意味着您无法在更高版本的代码中重写散列函数以获得更好的散列属性。例如,String.hashCode()功能很快……但不是很好。但它不能再改变了,因为哈希码是指定的,人们已经在他们自己的代码中依赖于那个实现。
String.hashCode()