【Java】 Java 集合框架

Java 集合框架

Java 集合框架图 ⭐

关键特性

特性 ArrayList LinkedList HashSet TreeSet HashMap TreeMap
底层结构 动态数组 双向链表 哈希桶 红黑树 哈希桶 红黑树
是否有序 插入顺序 插入顺序 无序 自然/比较器顺序 无序 key有序
是否允许null 允许 允许 一个null 不允许(null会NPE) key/value均允许 key不允许null
主要时间复杂度 get/set O(1) add/remove O(n) get O(n) add/remove O(1) 增删查 O(1) 增删查 O(log n) 增删查 O(1) 增删查 O(log n)
线程安全

注:需要线程安全时,使用 Collections.synchronizedXXXjava.util.concurrent 包下的类(如 ConcurrentHashMap)。

记忆口诀

List 有序可重复,Array 快查 Link 快改

Set 唯一不重复,Hash 快查 Tree 有序

Map 存键值对,Hash 无序 Tree 有序

队列 Queue 和 Deque,ArrayDeque 是首选

并发场景找 JUC,Concurrent 效率高

相关推荐
测试员周周8 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
Mahir0810 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
杜子不疼.11 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
加号311 小时前
【C#】 串口通信技术深度解析及实现
开发语言·c#
sycmancia11 小时前
Qt——编辑交互功能的实现
开发语言·qt
RyFit12 小时前
SpringAI 常见问题及解决方案大全
java·ai
石山代码12 小时前
C++ 内存分区 堆区
java·开发语言·c++
绝知此事12 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
无风听海12 小时前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠13 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git