zoukankan      html  css  js  c++  java
  • 深入理解java中的HashMap

    HashMap介绍 

      hashMap是java中一个非常重要的数据结构,工作中也会经常使用到。

      HashMap与Map接口的关系

        HashMap继承于AbstractMap类,实现了Map接口,Map是key-value键值对的接口,AbstractMap实现了"键值对"的通用函数接口。

     

     TreeMap是基于树的实现,HashMap,HashTable,ConcurrentHashMap是基于hash表的实现

     hashMap说明手册:https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

      

    HashMap实现原理

      HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。

      在JDK1.6,JDK1.7中,HashMap采用位桶(数组)+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值为8时,将链表转换为红黑树,这样大大减少了查找时间。

  • 相关阅读:
    第三章函数
    基本数据类型
    gulp压缩js
    read/load
    jQuery的类数组对象结构
    立即调用表达式
    npm
    cocos2d.js
    图片上传后压缩 Thinkphp
    判断用户是否在微信中
  • 原文地址:https://www.cnblogs.com/songgj/p/14411830.html
Copyright © 2011-2022 走看看