引言;
Java 中的集合类主要分为两大类:Collection 接口和 Map 接口。前者是存储对象的集合类,后者存储的是键值对(key-value)。
(这是在IntelliJ IDEA中使用Diagram功能来操作绘制的UML类图)
Set(实现类)
- HashSet: 基于哈希表,元素无序,不允许重复。
- LinkedHashSet: 基于链表和哈希表,维护插入顺序,不允许重复。
- TreeSet: 基于红黑树,元素有序,不允许重复。
List(实现类)
- ArrayList: 基于动态数组,查询速度快,插入、删除慢。
- LinkedList: 基于双向链表,插入、删除快,查询速度慢。
- Vector: 线程安全的动态数组,类似于 ArrayList,但开销较大。
Queue(实现类)
- PriorityQueue: 基于优先级堆,元素按照自然顺序或指定比较器排序。
- LinkedList: 可以作为队列使用,支持 FIFO(先进先出)操作。
Map(实现类)
存储的是键值对,给对象(value)设置了一个 key,这样通过 key 可以找到那个 value。
- HashMap: 基于哈希表,键值对无序,不允许键重复。
- LinkedHashMap: 基于链表和哈希表,维护插入顺序,不允许键重复。
- TreeMap: 基于红黑树,键值对有序,不允许键重复。
- Hashtable: 线程安全的哈希表,不允许键或值为 nul。
- ConcurrentHashMap: 线程安全的哈希表,适合高并发环境,不允许键或值为 null。