Java常见的容器
...大约 2 分钟Java基础
- Collection(集合):用于存储单个对象的集合。
- Map(映射):用于存储键值对的集合。
1. Collection(集合)
Collection
是存储单个对象的容器,分为以下几种主要类型:
List(列表)
- 特点:有序、可重复。
- 常见实现类:
ArrayList
:基于动态数组实现,查询快,增删慢。LinkedList
:基于双向链表实现,增删快,查询慢。Vector
:线程安全的动态数组,性能较差,已逐渐被ArrayList
取代。
Set(集合)
- 特点:无序、不可重复。
- 常见实现类:
HashSet
:基于哈希表实现,查询速度快,元素无序。LinkedHashSet
:基于哈希表和链表实现,元素按插入顺序排序。TreeSet
:基于红黑树实现,元素按自然顺序或自定义顺序排序。
Queue(队列)
- 特点:先进先出(FIFO)或优先级队列。
- 常见实现类:
LinkedList
:可以用作队列。PriorityQueue
:基于堆实现,元素按优先级排序。ArrayDeque
:基于数组实现的双端队列。
2. Map(映射)
Map
是存储键值对的容器,键不可重复。
常见实现类
HashMap
:- 基于哈希表实现,键值对无序。
- 允许键和值为
null
。 - 查询速度快。
LinkedHashMap
:- 基于哈希表和链表实现,键值对按插入顺序或访问顺序排序。
- 适合需要保持插入顺序的场景。
TreeMap
:- 基于红黑树实现,键值对按键的自然顺序或自定义顺序排序。
- 适合需要排序的场景。
Hashtable
:- 线程安全的哈希表实现,性能较差,已逐渐被
HashMap
取代。 - 不允许键或值为
null
。
- 线程安全的哈希表实现,性能较差,已逐渐被
ConcurrentHashMap
:- 线程安全的哈希表实现,性能优于
Hashtable
。 - 适合高并发场景。
- 线程安全的哈希表实现,性能优于
总结
Java 中常见的容器可以分为两大类:
- Collection:
List
:ArrayList
、LinkedList
、Vector
。Set
:HashSet
、LinkedHashSet
、TreeSet
。Queue
:LinkedList
、PriorityQueue
、ArrayDeque
。
- Map:
HashMap
、LinkedHashMap
、TreeMap
、Hashtable
、ConcurrentHashMap
。