集合框架1

|-----------|----|------|--------------|--------|
| ArrayList | 10 | N/A | 元素数>当前容量 | 1.5倍增长 |
| HashMap | 16 | 0.75 | 元素数>容量×负载因子 | 2倍增长 |

hashset底层使用hashmap实现

hashmap

数组链表红黑树 + hash算法

用链表是来解决数组下标会覆盖的问题,冲突的问题。为什么hashmap用两个数据结构

头插法、尾插法

头插法(多线程出现死循环 cpu 100%)

:扩容时从头节点开始插

put和get都使用hash算法

红黑树的查询效率

当链表长度>=8且容量大小大于64的时候转红黑树

=<6红黑树转链表

ConcurrentHashMap(并发安全map)

cas乐观锁

锁粒度非常小只在链表头节点 、红黑树上加锁synchronized(log2n)

二分法查找的时间复杂度为 ‌**O(log⁡n)**‌

synchronized会发生上下文切换

链表

1、覆盖

2、直接插入next尾部(没有用头插法)

相关推荐
benbenAItalk5 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl5 小时前
Java学习二 基本语法2, 算术运算符
java·学习
2601_966949655 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin5 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885725 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户5 小时前
Java锁
java·开发语言
多加点辣也没关系6 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2336 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean21036 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客6 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm