Java的集合类分为两大类。一个是Collection接口另一个是Map接口。
前者主要是List,Set,Queue。用于存储对象。
后者则是存储的键值对。
List接口:
LinkedList 基于双向链表的List,插入,删除速度快,但是查询数据慢。
ArrayList 基于动态数组的List,查询速度快,但是插入,更新,删除慢
Vector 线程安全的动态数组,类似ArrayList,但是开销比较大
Set接口:
HashSet 基于哈希表,元素无序,不允许重复
TreeSet 基于红黑树,元素有序,不允许重复
LinkedHashSet 基于链表和哈希表,维护插入顺序,不允许重复。
Queue:
PriorityQueue 基于优先级堆,按照自然顺序或指定比较器排序。
LinkedList 可以作为队列使用,支持FIFO
Map接口:
HashMap:基于哈希表,键值对无序,不允许键重复。
LinkedHashMap:基于链表和哈希表,维护插入顺序,不允许键重复。
TreeMap:基于红黑树,键值对有序,不允许键重复。
Hashtable:线程安全的哈希表,不允许键或值为 null。
ConcurrentHashMap:线程安全的哈希表,适合高并发环境,不允许键或值为 null。