一.List
1.List 接口是 Collection 接口的子接口
2.List 是有序的集合,存储数据和取出数据的顺序是一样的
3.有索引,包含了一些带索引的方法(底层实现是数组,他是一个可变数组)
4.允许存储重复的元素
5.List接口的主要实现类
ArrayList
6.常用方法
(1)add() 添加元素
add(index,ele) 在指定位置添加元素
(2)get(index) 获取指定索引位置的元素
(3)indexOf(Object) 获取元素在集合中第一次出现的索引位置
(4)lastIndexOf(Object) 获取元素在集合中最后一次次出现的索引位置
(5)remove(index) 删除指定索引位置的元素
(6)set(index,Object) 设定指定索引位置的元素
二.ArrayList
1.底层实现是使用数组(可变数组)允许包含所有元素类型
2.可以根据索引位置,对集合进行快速的随机访问
3.向集合中插入和删除的速度较慢
三.LinkedList
1.使用双向链表的方式来操作数据(通过next 和pervious可以移动指针)
2.便于向集合中插入和删除元素(效率高)
3.使用链表形式操作数据,访问数据的速度比较慢
四.Vector
1.底层实现是数组
2.是线程安全的,效率比较低
五.ArrayList和LinkedList的区别
(1)ArrayList是用数组实现的,LinkedList使用双向链表的数据结构
(2)对于随机访问ArrayList优于LinkedList,因为LinkedList要移动指针
(3)对于频繁的删除和插入元素,使用LinkedList因为ArrayList要移动数据