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。