集合框架List

集合框架List

集合框架List(ArrayList特有方法、特有迭代器、具体对象特点、增长因子论证)

List 元素是有序的、可重复ArrayList、Vector默认初始容量为10

ArrayList:线程不安全,查询速度快    
底层数据结构是数组结构    
增长因子为1.5:      
如 ArrayList的容量为10,一次扩容后是容量为15

Vector:线程安全,但速度慢  线程同步  
底层数据结构是数组结构    
增长因子为2:即当 元素个数 超过 容量长度 时,进行扩容        
如 Vector的容量为10,一次扩容后是容量为20

Linkedlist 链表结构 增删快,查询慢 没有连续下标

Set(集) 元素无序的、不可重复。

扩容增量:当元素个数超过容量长度时进行扩容 ,容量长度*加载因子的系数
集合框架List
ArrayList特有方法
List:凡是可以操作角标的方法都是该体系所特有的方法

Add(index,element)在列表的指定位置插入指定元素

Remove(index)移除列表中指定位置的元素

Set(index,element)用指定元素替换列表中指定位置的元素

Get(index)返回列表中指定位置的元素
subList(from,to) 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图
listIterator() 返回此列表元素的列表迭代器

特有迭代器
ListIterator是Iterator的子接口,使用迭代器遍历集合
Iterator与ListIterator的区别:

1 .iterator()方法在set和list接口中都有定义,但是ListIterator()仅存在于list接口中(或实现类中)。

2 .ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有
hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。

3.ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能等。

集合框架List
list集合的调优

增长因子论证

ArrayList增长因子的初始值为10,当大于十时就会增大,也可以自己定义初始值,代码为:ArrayList li=new ArrayList<>(50); 50就是自己设置的初始值
集合框架List

集合框架Vector

Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。Vector 是同步的,可用于多线程。Vector 继承了AbstractList,实现了List;所以,它是一个队列数组,支持相关的添加、删除、修改、遍历等功能。

集合框架List

Iterator.remove()与Collection.remove()的区别

迭代器与集合是两个对象 如果在迭代器中调用集合的remove方法 会报currentModifyException