List接口:
不唯一,有序
方法:
static of() :返回不可修改的List集合,对象的属性可以修改。
indexOf() removeOf() 如果存储对象,重写equals方法
boolean removeAll():删除两个集合的交集
boolean retainAll(): 保留交集。
能删除元素的遍历方式:
Iterator :使用Iterator中的remove()删除,无参数,删除当前元素。
普通for:删除时会左移一个,解决方法:每删一个回退一个。
比较器:
Comparator:使用集合中的sort方法,传入一个比较器,
三种方式:
1.可以创建类实现Comparator接口,重写里面的compare方法。
2.使用匿名内部类方式。
3.使用Lambda表达式。
LinkedList:
是List接口的链接列表实现类,实现了Deque接口,即能将LinkedLidt当作双端队列使用。
ArrayList与LinkedList的区别:
-
ArrayList是动态数组,LinkedList的数据结构是链表。
-
ArrayList不支持高效插入和删除操作,LinkedList不支持高效的随机访问元素。
-
ArrayList的空间浪费在数组末尾预留2一定容量的空间,LinkedList的浪费在每个节点都要消耗空间来存储prev,next等信息。
ArrayList与Vector的区别:
-
Vector线程安全,ArrayList线程不安全。
-
ArrayList在扩容是默认1.5倍,Vector在扩容时默认1倍。
-
ArrayList支持序列化,Vector不支持。
-
Vector提供indexOf(obj,start)接口,ArrayList没有。
-
Vector构造函数可以增加扩容系数,ArrayList不可。