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

相关推荐
tachibana26 分钟前
hot100 课程表(207)
java·数据结构·算法·leetcode
神仙别闹7 分钟前
编写基于C++ Huffman 算法的无损压缩程序和解压程序
java·c++·算法
IT乐手23 分钟前
Android 写本地日志工具类
android·java
阿维的博客日记38 分钟前
spring里面的@RequestParam什么意思
java·后端·spring
laowangpython39 分钟前
昆仑通态 Mcgs Pro软件安装步骤(附安装包)Mcgs Pro 3.3.6 下载安装教程(保姆级)
java·服务器·数据库·其他
罗超驿1 小时前
6.Java LinkedList深度解析:从链表原理到源码实践
java·开发语言·链表
2501_948106911 小时前
计算机毕业设计之jsp物业管理系统
java·大数据·开发语言·汽车·课程设计
黑taoA1 小时前
深度解析:Maven核心命令(clean、compile、package、install)与IDEA多模块项目避坑指南
java·maven·intellij-idea
TDengine (老段)1 小时前
TDengine 索引使用指南 — 何时建、怎么建、怎么用
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
xlxxy_2 小时前
sap获取批次特性报表
java·linux·开发语言·前端·数据库·abap·mm