码迷,mamicode.com
首页 > 其他好文 > 详细

HashMap

时间:2019-07-03 00:27:25      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:初始   info   treenode   width   height   位置   方法   com   put   

技术图片

 

为了更形象的理解Hashmap,直接上图

底层结构用哈希表(其实是数组+链表)

普及
  数组:查询快(下标),增删慢
  链表:增删快,查询慢(首位相连,找到前一个的末尾,才能找到)

hashMap  结构(jdk1.8)

技术图片

 

 

 

      1、对key求hash值   技术图片

 

     2、初始化数组(默认长度16)

技术图片

   3、put元素  技术图片

               1.1 没有元素  放入该位置 

               1.2 有元素,以链表形式放到链表的最后(kdk1.7及以前放在最前面)

               ==》当元素是TreeNode类型(即长度超过8,转换成树结构)

              

 4、扩容  当数组不够用,需要进行扩容:默认是(数组大小*扩容因子(默认值0.75)),即长度为16时,当长度超过12,就开始扩容,方法resize()

 

未完待续。。。。。。。。。。。。。。。。。。。。。。 HashMap线程是否安全

HashMap

标签:初始   info   treenode   width   height   位置   方法   com   put   

原文地址:https://www.cnblogs.com/songsong003/p/11123869.html

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