
扫码关注微信公众号
回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
当前位置:
Java > Java集合高频面试题 > 27.关于HashMap的key一些问题
本文链接:https://www.mianshi.online/java-collection-map-key.html
能否使用任何类作为HashMap 的 key?
可以,但要注意以下两点:
- 如果类重写了
equals()
方法,也应该重写hashCode()
方法。 - 最好定义
key
类是不可变的,这样key
对应的hashCode()
值可以被缓存起来,性能更好,这也是为什么String
特别适合作为HashMap
的key
。
为什么HashMap中String、Integer这样的包装类适合作为Key?
- 这些包装类都是
final
修饰,是不可变性的, 保证了key
的不可更改性,不会出现放入和获取时哈希值不同的情况。 - 它们内部已经重写过
hashcode()
,equal()
等方法。
如果使用Object作为HashMap的Key,应该怎么办呢?
- 重写
hashCode()
方法,因为需要计算hash值确定存储位置 - 重写
equals()
方法,因为需要保证key
的唯一性。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版