一,List接口:
查询效率高,增删效率低,线程不安全。
1.ArrayList:
ArrayList是List接口的一个实现类,它扩展了AbstractList接口,并且实现了List接口,是一个泛指类,实现了List接口中的所有的方法,可以存放相同的对象,包括null值。
2.LinkedList:
该类扩展了AbstractSequentialList类,并实现了List接口和Queue接口,它提供了链表型的数据结构,是一个泛型类。方便元素添加、删除的集合。
3.Vector:
Vector集合数据存储的结构是数组结构,为JDK中最早提供的集合。
二,Set集合:
Set集合中的方法和 Collection的一致
1.Set集合中的特点:
Set集合中的储存元素是不重复的
Set无序集合(存储和取出的顺序),没有索引
Set集合的取出方式只有迭代器。
2.HashSet:
元素唯一,不能重复
底层结构是 哈希表结构
元素的存与取的顺序不能保证一致
如何保证元素的唯一的?
重写hashCode() 与 equals()方法LinkedHashSet
3.LinkedHashSet:
元素唯一不能重复
底层结构是 哈希表结构 + 链表结构
元素的存与取的顺序一致
三,List与Set集合的区别?
List:
它是一个有序的集合(元素存与取的顺序相同)
它可以存储重复的元素
Set:
它是一个无序的集合(元素存与取的顺序可能不同)
它不能存储重复的元素
四,List集合中的特有的:
ArrayList:
底层数据结构是数组,查询快,增删慢
LinkedList:
底层数据结构是链表,查询慢,增删快
Vector:
Vector中提供了一个独特的取出方式,就是枚举Enumeration,它其实就是早期的迭代器。
五,Set集合中的特有的:
HashSet:
元素唯一,不能重复
底层结构是 哈希表结构
元素的存与取的顺序不能保证一致
如何保证元素的唯一的?
重写hashCode() 与 equals()方法
LinkedHashSet:
元素唯一不能重复
底层结构是 哈希表结构 + 链表结构
元素的存与取的顺序一致