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