1.Collection是所有单列集合的根接口,两大主要子接口:
1:List 有序,可重复,主要子类及特点:
(1):ArrayList:底层数据结构是数组,故增删慢,查询快,线程不安全,效率高;
(2):Vector:底层数据结构也是数组,增删慢,查询快,线程安全,效率低;
(3):LinkedList:底层数据结构是链表,增删快,查询慢,线程不安全,效率高。
2:Set 无序,不可重复(唯一),主要子类及特点:
(1):HashSet:底层数据结构是哈希表,允许有null元素,线程不安全, 依赖与hashCode()和equals()两个方法保证元素的唯一性。其子类LinkedHashSet底层数据 结构是链表和哈希表,由链表保证元素有序,哈希表保证元素唯一。
(2):TreeSet:底层数据结构是红黑二叉树(是一个自平衡的二叉树),由自然排序(元素具备比较性,让元素所属的类实现Comparable接口)或者比较器排序(集 合具有比较性,让集合构造方法接受Comparable的实现类对象)来保证元素的排序,根据比较的返回值是否是0来保证元素的唯一性。
2.Map:是双列集合,由键值对组成,键唯一;每个键只能对应一个值,主要实现类:
1:HashMap:无序,线程不安全,允许有空(null)键(但最多只能有一个键的值为null)。
2:HashTable:无序,线程安全,不允许有空键。
3.Collection和Map的区别:
Map存储的是键值对形式的元素,键唯一,值可以重复;
Collection存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可以重复。
4.Collection和Collections的区别:
Collection是所有单列集合的根接口,提供了对集合对象进行基本操作的通用接口方法;
Collections是针对集合类的一个工具类,提供了一系列静态方法以实现对各种集合的搜索、排序、线程安全化等操作。