概述
容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。
Collection
List
- ArrayList:基于动态数组实现,支持随机访问。
- Vector:与ArrayList类似,但它是线程安全的。
- LinkedList:基于双向链表实现,只能顺序访问,但在链表中间插入和删除元素的速度很快。LinkedList还可以用作栈、队列和双向队列。
Set
- TreeSet:基于红黑树实现,支持有序性操作。查找效率不不如HashSet,HashSet查找的时间复杂度为0(1),TreeSet则为O(logN)。
- HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作
- LinkedHashSet:具有HashSet的查找效率,并且内部维护使用双向链表维护元素的插入顺序
Queue
- LinkedList:可以用来实现双向队列
- PriorityQueue:基于堆结构实现,可以用来实现优先队列
Map
- TreeMap:基于红黑树实现
- HashMap:基于哈希表实现
- HashTable:和HashMap类似,但它是线程安全的。它是遗留类,不应该去使用它,而是使用ConcurrentHashMap来支持线程安全。