HashMap结构认识

DEFAULT_INITIAL_CAPACITY是HashMap的初始化容量,默认16

DEFAULT_LOAD_FACTOR是HashMap的负载因子默认是0.75,这意味着当HashMap的键值对数量达到了容量的75%时,HashMap就会进行扩容,桶数组的长度将翻倍。

TREEIFY_THRESHOLD是树化阈值,如果链表长度超过了8,HashMap 会将该链表转换为红黑树结构

因此我们可以这样简单理解:

HashMap就是一个默认长度16的桶数组,每个桶用来存放键值对。

添加键值对时,键值对的key与已有键值对的key发生了哈希冲突,它们会存放在同一个桶内,并且在桶内会维护一个链表来存储这些键值对,通常将新的键值对追加到链表的尾部。

当链表长度超过树化阈值8,则会将链表结构自动转换成红黑树结构,以提高在该桶中的查询性能。如果在红黑树中删除键值对后,链表长度降到了阈值以下(小于等于 8),HashMap 会自动将红黑树结构转换回链表结构。

 
posted @ 2023-09-27 18:59  Ashe|||^_^  阅读(5)  评论(0编辑  收藏  举报