码迷,mamicode.com
首页 > 编程语言 > 详细

深入理解java中的hashMap

时间:2021-02-19 13:42:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tab   链表   实现继承   手册   数组   一个   转换   处理   ora   

HashMap介绍 

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

  HashMap与Map接口的关系

    hashMap是是实现继承Map接口。

 技术图片

 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时,将链表转换为红黑树,这样大大减少了查找时间。

深入理解java中的hashMap

标签:tab   链表   实现继承   手册   数组   一个   转换   处理   ora   

原文地址:https://www.cnblogs.com/songgj/p/14411830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!