1.List接口–允许数据重复
在进行单个集合处理时,优先考虑List接口
在List接口中,扩展了两个重要方法(List接口独有)
Public E get(int index):根据索引下标取得数据
Public E set (int index,E element):根据索引下标更新数据,
返回修改前的数据
List接口有三个重要的子类:ArrayList、vector,LinkedList
List接口要想保存自定义类的对象,该类必须覆写equals()来使用contains()、remove()等方法;
2.ArrayList、Vector的区别:
1.出现版本:
ArrayList JDK1.2
Vector JDK1.0 (出现在List、Collection接口之前)
2.初始化策略区别
Vector在无参构造执行后将对象数组大小初始化为10
ArrayList采用懒加载策略,在构造方法阶段不初始化对象数组,在第一次添加元素是才初始化对象数组大小为10
3.扩容策略
ArrayList扩容时,新数组大小变为原数组的1.5倍,
Vector扩容时,新数组大小变为原数组的2倍
4.线程安全性:
ArrayList采用异步处理,线程不安全,效率较高
Vector采用在方法上加锁,线程安全,效率较低(即便要使用线程安全的List,也不用Vector)
5.遍历:
Verctor支持较老的迭代器Enumeration,
ArrayList不支持
3.ArrayList和Vector的相同点
底层均使用数组实现
4.ArrayList、LinkedList
LinkedList底层采用双向链表实现,ArrayList底层采用数组实现