
网站救助计划
1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本
2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助,网站倒闭后可联系站长领取本站pdf内容
3.若网站能存活下来,后续将会持续更新内容
能否使用任何类作为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完整版