校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > Map 1.7和1.8
题目

说一下HashMap 1.7和1.8的区别

解答

1 结构区别:HashMap1.8的底层数据结构是数组+链表+红黑树。HashMap 1.7的底层数据结构是数组加链表。
2 扩容的区别:
Jdk1.7:头插法,添加前先判断扩容,当前准备插入的位置不为空并且容量大于等于阈值才进行扩容,是两个条件!
扩容后可能会重新计算hash值。
Jdk1.8:尾插法,初始化时,添加节点结束之后和判断树化的时候都会去判断扩容。我们添加节点结束之后只要size大于阈值,就一定会扩容,是一个条件。
由于hash是final修饰,通过e.hash & oldCap==0来判断新插入的位置是否为原位置。

C 0条回复 评论

帖子还没人回复快来抢沙发