java集合类分为两大类,一类是实现Collection接口,主要有List和Set,还有Queue;另一类是实现Map接口。
上图覆盖了Collection的主要实现。
Vector和ArrayList都是动态数组实现,随机访问性能高,Vector线程安全,LinkedList双向链表实现,节点插入、删除性能高。
TreeSet支持自然排序,但并不是有序的,LinkedHashSet内部构建了一个记录插入顺序的双向链表
Deque是双向链表
实现Map的类有HashTable,HashMap,LinkedHashMap,TreeMap。
HashTable是线程安全的,LinkedHashMap有序,TreeMap基于红黑树提供顺序访问。
HashMap在jdk7之前是数组+链表的结构实现,jdk8优化为链表数默认超过8后有红黑树代替,提高了查询效率。