重学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

相关推荐
哈里谢顿2 小时前
跳表(Skip List):简单高效的有序数据结构
数据结构
任沫1 天前
字符串
数据结构·后端
祈安_1 天前
Java实现循环队列、栈实现队列、队列实现栈
java·数据结构·算法
NineData3 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
琢磨先生David11 天前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
qq_4542450311 天前
基于组件与行为的树状节点系统
数据结构·c#
超级大福宝11 天前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
岛雨QA11 天前
常用十种算法「Java数据结构与算法学习笔记13」
数据结构·算法
weiabc11 天前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异
数据结构·c++·算法
wefg111 天前
【算法】单调栈和单调队列
数据结构·算法