试题
考点

java语言-容器和Map-Map 1.7和1.8

面5笔5

说一下HashMap 1.7和1.8的区别

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

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

评论
暂无评论

加载更多