今天有小伙伴在面试的时候,面试官问了下java7和java8的hashmap有什么区别,小伙伴直接回答了,java7是数组+链表,java8是数组+链表+红黑树。因为像这种比较概念性的知识点大家随时这件的推荐,记录会越来越模糊,面试官又问,可以再详细点吗,结果小伙伴就说不出来了。今天我们就来简要的介绍一下。
JAVA7中的hashmap整体结构是数组+链表的结构,如果发生了hash碰撞的时候,java7会将此元素添加到链表的开始位置。
java7中的hashmap整体结构是数组+链表+红黑树的结构。如果发生了hash碰撞的时候,java8会将此元素添加到链表的末尾位置。 如果hashmap的总容量大于等于64,并且某个链表的长度大于等于8之后,才会将链表转化为红黑树。
以上两个知识点:
1、java7是把元素添加到开始位置。java8把元素添加到末尾位置。
2、总容量大于等于64,并且某个链表长度大于等于8才会转换成红黑树。
还没有评论,来说两句吧...