List
继承自Collection,有序集合(序列),用户使用List可以精确控制元素的插入位置,通过索引访问元素并搜索元素;与Set不同,List可以存储重复的元素。
List特有方法
void add(int index,E element) | 将指定元素添加至指定位置 |
E remove(int index) | 删除指定位置元素,返回E |
E set(int index,E element) | 修改指定位置元素,返回 E |
E get(index) | 返回指定位置元素 |
List可以使用get方法索引遍历
List案例,List集合继承自Collection,可以使用Iterator或for循环遍历
并发修改异常
原因:迭代器遍历过程中,通过集合对象修改了集合中的元素长度,造成迭代器获取元素判断预期修改值和实际修改值不同。
if(list.equals("hello")){ list.add("java") }
解决:用for循环遍历,然后用集合对象操作。
ListIterator
1、通过List集合的ListIterator()方法得到;
2、用于允许程序员沿任一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器当前位置。
常用方法
E next() | 返回迭代中下一个元素 |
boolean hasNext() | 迭代更多元素,返回true |
E previous() | 返回列表中上一个元素 |
boolean hasPrevious() | 此列表迭代器在相反方向遍历列表有更多元素,返回true |
void add(E e) | 将指定元素插入列表 |
增强for循环
目的:简化数组和Collection集合的遍历
实现Iterator接口的类允许其对象称为增强型for语句目标。
原理:Iterator迭代器
格式 for(元素数据类型 变量名:数组或Collection名){}
可以用
if...{list.add()}测验原理。
明天将继续学习集合结构体系。