HashMap 实现原理 1.8

1.HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题

2.底层实现原理1.8 主要基于散列算法 链表和 红黑树 实现

3.主要成员变量  

 table 记录桶的数组 size 桶的大小

 

 DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 默认桶的大小

 DEFAULT_LOAD_FACTOR  负载因子默认0.75

名称用途initialCapacityHashMap 初始容量

loadFactor负载因子

threshold当前 HashMap 所能容纳键值对数量的最大值,超过这个值,则需扩容

 

4.主要内部类实现

   Node 基于链表的单向节点

 

 TreeNode 红黑树节点

 

 

 

 5.查找 即先定位键值对所在的桶的位置,然后再对链表或红黑树进行查找。通过这两步即可完成查找

 

 

posted @ 2019-08-01 15:19  _debug—  阅读(149)  评论(0编辑  收藏  举报