1

一、List集合特点

image.png
1、可以索引
2、可以重复
有序:存储和取出的顺序一致
创建对象:

List<E> s = new ArrayList<>();

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

 List继承自Collection类。

image.png

二、List特有方法

Collection没有,但ArrayList有
image.png
例:
初始:
image.png
操作:
image.png

//[hello,javasee,world,java]

image.png
world
//[hello,java]

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

三、案例

image.png

image.png
注意:

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

四、并发修改异常

image.png
例:
image.png
image.png

image.png
若继承List接口,那么以上两个方法需要重写,
image.png

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

用for改写就没事,因为没用Itr类下的方法。
image.png

四、ListIterator接口 列表迭代器

继承自Iterator<E>
这个接口通过调用List下的listIterator()方法,返回ListIterator<>接口
image.png
重点掌握add()
image.png
使用的是ListIterator接口的实现类ListItr下的add方法
image.png

五、LindedList

public class LinkedList<E> implements List<E>

image.png
LinkedList底层数据结构是链表,所以有针对头节点和尾节点操作的方法。
image.png


MeeWoW
18 声望1 粉丝

加油