put操作

hashmap 的put与get(笔记)

本节主要记录自己对hashmap的认识,

成员变量:

 transient Entry<K,V>[] table = (Entry<K,V>[]) EMPTY_TABLE;//数组

 

1 数据接口就是数组 加链表  hashmap有 table数组专门记录 的就是,正常的put值就是计算出key的hashcode然后找出索引 i 去table数组中找,如果存在就用单链表存储,如果不存在的话就直接addEntry把数据存储,然后如果找不到

 

get操作:
hashmap 的put与get(笔记)

 

进行get操作的时候首先也是计算出k的hashcode 然后计算出索引i 去table[i]中遍历单链表,此操作比较慢,如果数据量过大的时候,最后预先给map一个长度,避免进行自动扩容引起的时间消耗,重新计算hash复制数据是非常耗时间的, 然后根据key的hash值 以及key值本身作为条件进行查询, table数组中每一个单链表的hash应该是相等的,只是key不一样 

相关文章:

  • 2021-08-15
  • 2021-12-20
  • 2022-12-23
  • 2021-05-31
  • 2022-02-09
  • 2021-09-13
猜你喜欢
  • 2021-10-24
  • 2021-12-17
  • 2021-07-08
  • 2022-01-15
  • 2022-01-06
  • 2021-12-11
  • 2022-12-23
相关资源
相似解决方案