集合框架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尾部(没有用头插法)

相关推荐
Jinkxs7 小时前
Java 跨域14-Java 与区块链(Hyperledger)集成
java·开发语言·区块链
晨曦中的暮雨7 小时前
Golang速通(Javaer版)
java·开发语言·后端·golang
七老板的blog8 小时前
当 Spring StateMachine 遇见大模型:构建工业级 AI 写作流水线
java·人工智能·spring
小小编程路8 小时前
Python 还有容器类型互转、进制转换、字符编码转换
开发语言·windows·python
qeen878 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
云烟成雨TD8 小时前
Spring AI 1.x 系列【46】MCP Security 模块
java·人工智能·spring
CRMEB系统商城8 小时前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php
sinat_255487818 小时前
第七部分。介绍MVC(模型-视图-控制器)模式
java·ide·http·tomcat·intellij-idea
动能小子ohhh8 小时前
DocForge平台的设计与开发--文件上传接口的实现
开发语言·人工智能·python·langchain·ocr·fastapi
满天星83035778 小时前
【Qt】信号和槽(二) (自定义信号和槽)
开发语言·数据库·qt