首页 > 编程语言 > 详细

java基础

时间:2019-05-09 16:45:59      阅读:128      评论:0      收藏:0      [点我收藏+]

为什么String, Interger这样的wrapper类适合作为键?

 1,String已经重写了equals()和hashCode()方法了,其他的wrapper类也有这个特点

 2,String是不可变的,也是final的,不可变性是必要的,因为为了要计算hashCode(),就要防止键值改变,如果键值在放入时和获取时返回不同的hashcode的话,那么就不能从HashMap中找到你想要的对象

 3,不可变性还有其他的优点如线程安全。如果你可以仅仅通过将某个field声明成final就能保证hashCode是不变的,那么请这么做吧。因为获取对象的时候要用到equals()和hashCode()方法,那么键对象正确的重写这两个方法是非常重要的。如果两个不相等的对象返回不同的hashcode的话,那么碰撞的几率就会小些,这样就能提高HashMap的性能。

java基础

原文:https://www.cnblogs.com/xueyunqing/p/10839243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!