可以使用任何类作为 Map的 key,然而在使用之前,需要考虑以下几点:
1、如果类重写了equals()方法,也应该重写hashCode()方法。
2、类的所有实例需要遵循于equals()和hashCode()相关的规则。
3、如果一个类没有使用equals(),不应该在 hashCode()中使用它。
4、用户自定义Key 类最佳实践是使之为不可变的,这样 hashCode()值可以被缓存起来,拥有更好的性能。
不可变的类也可以确保hashCode()和 equals()在未来不会改变,这样就会解决与可变相关的问题了。
Was this helpful?
0 / 0