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) |

相关推荐
Coder_Boy_1 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
invicinble1 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟2 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖2 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
qq_12498707533 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_3 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.3 小时前
Day06——权限认证-项目集成
java
瑶山3 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
abluckyboy3 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
2301_818732063 小时前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea