一、List集合特点
1、可以索引
2、可以重复
有序:存储和取出的顺序一致
创建对象:
List<E> s = new ArrayList<>();
之后的添加元素和迭代器与Collection一致。
List继承自Collection类。
二、List特有方法
Collection没有,但ArrayList有
例:
初始:
操作:
//[hello,javasee,world,java]
world
//[hello,java]
world
//[hello,javasee,java]
三、案例
注意:
这里list.get(i)返回的是Student对象,所以还需要getName(),getAge()来输出
当然也可以重写Student类中的toString方法,直接sout(list.get(i))就能得到值
四、并发修改异常
例:
若继承List接口,那么以上两个方法需要重写,
ArrayList()类实现了List接口,需要重写List的方法,其中一个方法是返回Iterator对象,Iterator是接口不能直接new,这个动作是Itr类实现了Iterator接口,Itr方法下的next()方法需要判断预期修改值是否与实际修改值一致,而ArrayList()下的add方法会改变实际修改值,导致二者不等而报错。
用for改写就没事,因为没用Itr类下的方法。
四、ListIterator接口 列表迭代器
继承自Iterator<E>
这个接口通过调用List下的listIterator()方法,返回ListIterator<>接口
重点掌握add()
使用的是ListIterator接口的实现类ListItr下的add方法
五、LindedList
public class LinkedList<E> implements List<E>
LinkedList底层数据结构是链表,所以有针对头节点和尾节点操作的方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。