java中的集合类分为Collection接口和Map接口,Collection接口下的集合类中存储元素对象,而Map接口下的集合类中主要是存储key-value键值对。
Collection接口下的接口有List集合和Set集合:
list集合
List接口下有ArrayList 底层基于动态数组,查询效率较高,插入删除较慢。
LinkedList 基于双向链表,插入删除效率更快,查询效率慢。
Vector,基于线程安全的动态数组,类似与ArrayList,但是开销较大。
Set 集合
HashSet 基于哈希表,元素无序,不可重复。
LinkedHashMap 基于哈希表,双向链表,维护插入顺序,不可以重复。
TreeSet 基于红黑树,元素有序,不允许重复。
Map接口下的实现类有HashMap、HashTable、TreeMap 、LinkedHashMap、ConCurrentHashTable
HashMap 基于哈希表,键值对无序,不允许键重复。
LinkedHashMap 基于链表和哈希表,维护插入顺序,不允许键重复。
HashTable 基于线程安全的哈希表,不允许键或者值为null。
TreeMap 基于红黑树,键值对有序,不允许重复。
ConCurrentHashTable 线程安全的哈希表,适用于高并发的环境。不允许键或值为null。