【Java】一篇讲透Java中的集合类
Java中的集合类分为Collection接口和Map接口
一、Collection接口:
又派生为三个子接口,List、Set、Queue
1.List接口:
- 元素有序,可以有重复元素
例如:
- ArrayList :基于动态数组,查询效率高,插入/删除效率低
- LinkedList :基于双向链表,插入/删除效率高,查询效率低。
- Vector: 线程安全的动态数组,类似ArrayList,但是开销大。
2.Set接口:
- 不能包含重复元素
例如:
- HashSet:基于哈希表,元素无需。
- LinkedHashSet::基于哈希表和链表,维护插入数据。
- TreeSet::基于红黑树。
3.Queue接口:
- PriorityQueue: 基于优先级堆,元素按照自然顺序或比较器排序
- LinkedList: 可以作为队列使用,支持FIFO操作
二、Map接口:
key-value接口,可以通过key找到对应的value值。
- HashMap:基于哈希表,键值对无序,不允许键重复。
- LinkedHashMap:基于链表+哈希表,维护插入顺序,不允许键重复。
- TreeMap:基于红黑树,键值对有序,不允许键重复。
- Hashtable:线程安全的哈希表,不允许键或值为null。
- ConcurrentHashMap:线程安全的哈希表,适合高并发环境,不允许键或值为null。