一. 集合框架
Collection接口:Collection是单列集合,存储的是单个对象。
Map接口:Map是双列集合,存储的是键值対。
二. Collection常用子接口
List接口:list中的元素有序且可以重复。
Set接口:set中的元素则无序且不可以重复。
1. List常用实现类
(1)ArrayList:ArrayList底层通过数组实现,查询元素速度较快,插入删除相对较慢。
(2)LinkedList:LinkedList底层使用的是双向链表,随机访问的性能较差,适合插入删除。
(3)Vector:Vector所有的方法都带有synchronized关键字,并行性能慢,不建议使用。
2. Set常用实现类
(1)HashSet:HashSet底层使用的是哈希表。无序,不重复,无索引。
(2)TreeSet:TreeSet其内部使用的是红黑树,排序,不重复,无索引。
(3)LinkedHashSet:LinkedHashSet底层使用的是哈希表,同时使用双链表维护元素的插入顺序。有序,不重复,无索引。
注: JDK8以前,哈希表:底层使用数组+链表组成;
JDK8以后,哈希表:底层采用数组+链表+红黑树(链表的长度超过8)组成。
三. Map常用实现类
(1)HashMap:HashMap底层是哈希表,键是无序的,不重复,值可以重复。
(2)LinkedHashMap:hashMap下的子类,底层是哈希表+链表,键是有序的,不重复,值可以重复。
(3)HashTable:Hashtable同样是基于哈希表实现的。
(4)TreeMap:TreeMap底层是红黑树,键是排序的,不重复,值可以重复。