List、List特有方法、并发修改异常、ListIterator接口

一、List集合特点

List、List特有方法、并发修改异常、ListIterator接口_第1张图片
1、可以索引
2、可以重复
有序:存储和取出的顺序一致
创建对象:

List s = new ArrayList<>();

之后的添加元素和迭代器与Collection一致。

 List继承自Collection类。

List、List特有方法、并发修改异常、ListIterator接口_第2张图片

二、List特有方法

Collection没有,但ArrayList有
List、List特有方法、并发修改异常、ListIterator接口_第3张图片
例:
初始:
image.png
操作:
image.png

//[hello,javasee,world,java]

image.png
world
//[hello,java]

image.png
world
//[hello,javasee,java]

三、案例

List、List特有方法、并发修改异常、ListIterator接口_第4张图片

List、List特有方法、并发修改异常、ListIterator接口_第5张图片
注意:

这里list.get(i)返回的是Student对象,所以还需要getName(),getAge()来输出
当然也可以重写Student类中的toString方法,直接sout(list.get(i))就能得到值

四、并发修改异常

List、List特有方法、并发修改异常、ListIterator接口_第6张图片
例:
image.png
List、List特有方法、并发修改异常、ListIterator接口_第7张图片

image.png
若继承List接口,那么以上两个方法需要重写,
List、List特有方法、并发修改异常、ListIterator接口_第8张图片

ArrayList()类实现了List接口,需要重写List的方法,其中一个方法是返回Iterator对象,Iterator是接口不能直接new,这个动作是Itr类实现了Iterator接口,Itr方法下的next()方法需要判断预期修改值是否与实际修改值一致,而ArrayList()下的add方法会改变实际修改值,导致二者不等而报错。

用for改写就没事,因为没用Itr类下的方法。
List、List特有方法、并发修改异常、ListIterator接口_第9张图片

四、ListIterator接口 列表迭代器

继承自Iterator
这个接口通过调用List下的ListIterator()方法,返回ListIterator<>接口
List、List特有方法、并发修改异常、ListIterator接口_第10张图片
重点掌握add()
List、List特有方法、并发修改异常、ListIterator接口_第11张图片
使用的是ListIterator接口的实现类ListItr下的add方法
List、List特有方法、并发修改异常、ListIterator接口_第12张图片

你可能感兴趣的:(java)