微信公众号:路人zhang
网站救助计划

1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本


2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助网站倒闭后可联系站长领取本站pdf内容


3.若网站能存活下来,后续将会持续更新内容

当前位置: Java > Java集合高频面试题 > 27.关于HashMap的key一些问题

能否使用任何类作为HashMap 的 key?

可以,但要注意以下两点:

  • 如果类重写了 equals()方法,也应该重写hashCode()方法。
  • 最好定义key类是不可变的,这样key对应的hashCode()值可以被缓存起来,性能更好,这也是为什么String特别适合作为HashMapkey

为什么HashMap中String、Integer这样的包装类适合作为Key?

  • 这些包装类都是final修饰,是不可变性的, 保证了key的不可更改性,不会出现放入和获取时哈希值不同的情况。
  • 它们内部已经重写过hashcode(),equal()等方法。

如果使用Object作为HashMap的Key,应该怎么办呢?

  • 重写hashCode()方法,因为需要计算hash值确定存储位置
  • 重写equals()方法,因为需要保证key的唯一性。

本站链接:https://www.mianshi.online如需勘误或投稿,请联系微信:lurenzhang888


点击面试手册,获取本站面试手册PDF完整版