热门推荐








hashmap1.7和1.8的区别
HashMap是我们开发中经常使用到的集合,jdk1.8相对于1.7底层实现发生了一些改变。1.8主要优化减少了Hash冲突 ,提高哈希表的存、取效率。
底层数据结构不一样,1.7是数组+链表,1.8则是数组+链表+红黑树结构(当链表长度大于8,转为红黑树)。
JDK1.8中resize()方法在表为空时,创建表;在表不为空时,扩容;而JDK1.7中resize()方法负责扩容,inflateTable()负责创建表。
1.8中没有区分键为null的情况,而1.7版本中对于键为null的情况调用putForNullKey()方法。但是两个版本中如果键为null,那么调用hash()方法得到的都将是0,所以键为null的元素都始终位于哈希表table【0】中。
当1.8中的桶中元素处于链表的情况,遍历的同时最后如果没有匹配的,直接将节点添加到链表尾部;而1.7在遍历的同时没有添加数据,而是另外调用了addEntry()方法,将节点添加到链表头部。
1.7中新增节点采用头插法,1.8中新增节点采用尾插法。这也是为什么1.8不容易出现环型链表的原因。
1.7中是通过更改hashSeed值修改节点的hash值从而达到rehash时的链表分散,而1.8中键的hash值不会改变,rehash时根据(hash&oldCap)==0将链表分散。
1.8rehash时保证原链表的顺序,而1.7中rehash时有可能改变链表的顺序(头插法导致)。
在扩容的时候:
1.7在插入数据之前扩容,而1.8插入数据成功之后扩容。
猜你喜欢内容
-
专业的家政培训老师怎么样
专业的家政培训老师具有以下优势和发展前景:行业需求持续增长 随着社会对家庭服务质量的重视,家政服...
-
没有网教师如何上网课
针对没有网课经验的教师,上网课需要从平台选择、设备准备、内容制作和教学策略等方面入手。以下是具体...
-
永鑫专业足浴怎么样啊
关于“永鑫专业足浴”的评价,需结合不同地区的实体店铺信息综合分析:装修风格 多家分店采用古风或轻...
-
怎么样报名读铁路职高专业
以下是报名就读铁路职高专业的综合指南,结合了不同院校的招生流程和要求:了解招生政策 访问目标院校...
-
投顾证报考需要什么条件
报考证券投资顾问证需要满足以下条件,综合整理如下:从业资格要求 必须通过证券从业资格考试,包括《...
-
艺校汽修专业怎么样啊女生
关于艺校汽修专业对女生的适用性及发展前景,综合多来源信息分析如下:行业需求持续增长 我国汽车保有...
-
特岗岗位报考条件怎么看
特岗岗位报考条件需结合岗位类型和地区政策综合判断,主要包含以下核心要求:年龄要求 通常为18-30周岁...
-
专业老师学歌唱发音怎么样
专业老师在歌唱发音教学方面通常具有以下优势,但具体效果需结合学生个体情况综合评估:科学方法与技巧 ...
-
县聘教师如何离职的
县聘教师想要离职,需要遵循以下步骤:提前书面通知 :首先,教师需要提前30天向所在单位提交书面辞职申...
-
有编制的教师如何查询
要查询教师是否在编,您可以通过以下几种方式进行:查看编制证 :如果您是编制内的教师,您会收到编制证...