美文网首页
HashMap在JDK1.7和1.8中的区别

HashMap在JDK1.7和1.8中的区别

作者: 小明今晚加班 | 来源:发表于2019-06-22 11:47 被阅读0次

JDK1.7中HashMap底层实现借助 数组+链表,在有哈希冲突的情况下,通过拉链法解决。
但是,如果稍微用点心的话,可以人为造成多个哈希冲突(Hash Collision DoS),最坏情况下,N个key的哈希值都一样,那么遍历的时候时间复杂度为O(n).
JDK1.8中,为了解决链表过长引起查询过慢的问题,HashMap的底层实现做了修改,数组+链表(或红黑树)。当链表长度大于8的时候,会把链表转为红黑树来存储,我们知道红黑树的特点是查询复杂度在对数级别,因此可解决之前存在的链表过长造成查询不便的问题。(数组+红黑树的存储结构,最坏的查询情况才是lgN)

相关文章

  • Java并发(06)ConcurrentHashMap详解

    ConcurrentHashMap是实现了线程安全的HashMap,在JDK1.7和1.8中实现的原理有所区别 J...

  • HashMap理解

    hashmap在jdk1.7和1.8上是有区别的,在1.7上是数组+链表的形式,在1.8上是数组+链表+红黑树的形...

  • HashMap在JDK1.7和1.8中的区别

    在JDK1.7中HashMap底层实现借助 数组+链表,在有哈希冲突的情况下,通过拉链法解决。但是,如果稍微用点心...

  • hashmap 线程不安全原理,底层实现

    jdk1.7与jdk1.8中HashMap区别 JDK7,HashMap的结构很简单,基于一个数组以及多个链表的实...

  • Java-ConcurrentHashMap源码解析

    一、ConcurrentHashMap在JDK1.7和JDK1.8的区别 1.实现上的区别 在JDK1.7中采用的...

  • 对于HashMap的理解

    对于HashMap我们一定要分成jdk1.7和jdk1.8两部分来看,我们首先来看jdk1.7的HashMap。首...

  • HashMap学习笔记

    一、HashMap学习笔记 HashMap采用数组+链表的数据结构,只是在jdk1.7和1.8的实现上有所不同,下...

  • HashMap

    1.HashMap数据结构 JDK1.7,HashMap由数组和链表组成;JDK1.8,HashMap中增加了红黑...

  • Hashmap的结构,1.7和1.8有哪些区别

    实面试题之:Hashmap的结构,1.7和1.8有哪些区别 不同点: (1)JDK1.7用的是头插法,而JDK1....

  • Java集合目录

    一、简述 二、原理分析 HashMap(JDK1.7) HashMap(JDK1.8)

网友评论

      本文标题:HashMap在JDK1.7和1.8中的区别

      本文链接:https://www.haomeiwen.com/subject/rrvmqctx.html