一、概述
1.List被称为有序集合(也称为序列),用户可以十分精准的控制列表中每个元素的插入位置,用户可以通过整数索引访问元素并搜索元素列表
2..与set集合不同,列表中通常允许重复的数据
二、List集合的特点
1.有序:存储和取出的元素顺序一致
2.可重复:存储的元素可以重复
常用方法在前面有这里就不写了,有兴趣的可以翻翻看
三、List集合存储学生对象案例
代码演示:
public class CollectionDemo01 {
public static void main(String[] args) {
//创建List集合对象
List<Student>list=new ArrayList<Student>();
//创建学生对象
Student s1=new Student("张三",14);
Student s2=new Student("李四",15);
Student s3=new Student("王五",16);
list.add(s1);
list.add(s2);
list.add(s3);
//遍历两种方式
//方式一迭代器
Iterator<Student> it=list.iterator();
while(it.hasNext()){
Student s=it.next();
System.out.println(s.getName()+s.getAge());
}
System.out.println("--------------------------------------");
//方式二for循环
for (int i=0;i<list.size();i++){
Student s4=list.get(i);
System.out.println(s4.getName()+s4.getAge());
}
}
}
四、并发修改异常
ConcurrentModificationException
产生的原因:
迭代器在遍历的过程中,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致
解决方案:
使用for循环遍历,然后用集合对象做对应的操作即可
五、列表迭代器ListIterator
1.通过List集合的listIterator()方法得到,所以说他是LIst集合的特有迭代器
2.用于允许程序员沿任一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
常用方法:
E next():返回迭代中的下一个元素
Boolean hasNext():如果迭代具有更多元素,则返回true
E previous():返回列表中的上一个元素
Boolean hasPrevious():如果此列表迭代器在相反的方向遍历列表时具有更多元素,则返回true
void add(E e):将指定元素插入列表