当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-Jdk1.7到Jdk1.8 HashMap 发生了什么变化(底层)?

金三银四精选java面试题-Jdk1.7到Jdk1.8 HashMap 发生了什么变化(底层)?

来源:图灵教育
时间:2023-12-11 13:44:27
 

JDK1.7到Jdk1.8 HashMap 发生了什么变化(底层)?

  1. 1.7中底层是数组+链表,1.8中底层是数组+链表+红黑树,加红黑树的目的是提高HashMap插入和查询整体效率
  2. 1.7中链表插入使用的是头插法,1.8中链表插入使用的是尾插法,因为1.8中插入key和value时需要判断链表元素个数,所以需要遍历链表统计链表元素个数,所以正好就直接使用尾插法
  3. 1.7中哈希算法比较复杂,存在各种右移与异或运算,1.8中进行了简化,因为复杂的哈希算法的目的就是提高散列性,来提供HashMap的整体效率,而1.8中新增了红黑树,所以可以适当的简化哈希算法,节省CPU资源