重学java 57.哈希表结构存储过程

别焦虑,生活无非见招拆招

------ 24.6.3

哈希表存储数据去重复的过程:

a.先比较元素的哈希值(重写hashCode),再比较内容(重写equals)

b.如果哈希值不一样,证明内容不一样,存

c.如果哈希值一样,再比较内容

如果哈希值一样,内容不一样(哈希碰撞,哈希冲突),存

如果哈希值一样,内容也一样,去重复

细节:

a.哈希表中的数组默认长度16,但是是第一次put的时候数组才会被初始化为长度为16的数组

b.哈希表中有一个加载因子: 0.75F含义是,数组存储达到百分之75的时候,扩容扩容2倍

c.如果链表长度达到 8**,** 并且数组容量大于等于 64的时候,链表会自动转成红黑树

d.如果删除元素,元素个数小于等于 6了,红黑树会转回链表

变量

default_initial_capacity :HashMap默认容量 16

default_load_factor :HashMap默认加载因子 0.75f

threshold :扩容的临界值 等于容量*0.75=12第一次扩容

treeify_threshold :链表长度默认值,转为红黑树 :8

min_treeify_capacity :链表被 化时最小的数组容量:64

相关推荐
txinyu的博客4 分钟前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
im_AMBER22 分钟前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法
予枫的编程笔记22 分钟前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
X在敲AI代码44 分钟前
leetcodeD3
数据结构·算法
余瑜鱼鱼鱼1 小时前
Java数据结构:从入门到精通(十一)
数据结构
荒诞硬汉1 小时前
数组常见算法
java·数据结构·算法
2301_800256112 小时前
B+树:数据库的基石 R树:空间数据的索引专家 四叉树:空间划分的网格大师
数据结构·数据库·b树·机器学习·postgresql·r-tree
码农幻想梦2 小时前
第九章 高级数据结构
数据结构
AlenTech2 小时前
206. 反转链表 - 力扣(LeetCode)
数据结构·leetcode·链表
大厂技术总监下海2 小时前
用户行为分析怎么做?ClickHouse + 嵌套数据结构,轻松处理复杂事件
大数据·数据结构·数据库