Java List Set Map

一、List

1.1 ArrayList

1.2 LinkedList

二、Set

2.1 HashSet

2.2 TreeSet

2.3 LinkedHashSet

三、Map

3.1 HashMap

3.2 TreeMap

3.3 LinkedHashMap

四、对比

|------|---------------|------------------|----|-------|-----------------|------------------------------------------------------|---------|---------|-------------------|
| | 类型 | 底层结构 | 重复 | null值 | 场景 | 备注 | 查询 | 删除 | 新增 |
| List | ArrayList | 动态数组 | 可 | 允许 | 快速随机访问元素 | | 0(1) | 0(n) | 尾部增加0(1),中部增加0(n) |
| List | LinkList | 双向链表 | 可 | 允许 | 需要快速插入,删除元素 | | 0(n) | 0(1) | 尾部增加0(1),中部增加0(n) |
| Set | HashSet | 数组+(链表、红黑树) | 不可 | 允许 | 不要求顺序,且没有重复元素 | 重写hsahCode、equlas | 0(1) | 0(1) | 0(1) |
| Set | TreeSet | 红黑树 | 不可 | 不允许 | 要求顺序,且没有重复元素 | 重写comparato | 0(logN) | 0(logN) | 0(logN) |
| Set | LinkedHashSet | 数组+(链表、红黑树))+链表 | 不可 | 允许 | 有特定输出顺序,且没有重复元素 | | 0(1) | 0(1) | 0(1) |
| Map | HashMap | 数组+(链表、红黑树) | 不可 | 允许 | 键值存取,而且不要求顺序 | 时间复杂度平均能达到O(1)。正常是O(1)到O(n) jdk1.8添加了 红黑树 是 O(log n) | 0(1) | 0(1) | 0(1) |
| Map | TreeMap | 红黑树 | 不可 | 不允许 | 键值存取值,而且要求顺序 | 重写comparato | 0(logN) | 0(logN) | 0(logN) |
| Map | LinkedHashMap | (数组+(链表、红黑树))+链表 | 不可 | 允许 | 有特定输出顺序键,键值存取 | | 0(1) | 0(1) | 0(1) |

相关推荐
plainGeekDev29 分钟前
单例模式 → object 声明
android·java·kotlin
用户298698530141 小时前
Java 实现 Word 文档文本与图片提取的方法
java·后端
SimonKing2 小时前
铁子,IntelliJ IDEA 2026.1.3来了,升不升?
java·后端·程序员
咖啡八杯13 小时前
GoF设计模式——策略模式
java·后端·spring·设计模式
用户1285261160221 小时前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java
Linsk21 小时前
组件 = 模板 + 业务逻辑
java·前端·vue.js
星沉远浦1 天前
用Gemini高效解决Java代码报错难以定位的问题
java
用户298698530141 天前
Word 文档字符级格式化:Java 实现方案详解
java·后端
笨鸟飞不快1 天前
从单个服务到集群:一次完整的性能排查复盘
java·前端