在for循环遍历list的时候,不要对集合进行增删的操作。不然会报java.util.ConcurrentModificationException的错。
原因是因为,迭代方法里面有以下这个方法,这个方法的作用是保证在迭代期间,集合的结构不发生改变。
解决方法:可以用removeAll()来解决。
public static void main(String[] args) {
List<Student> list = new ArrayList();
list.add(new Student("小一",1));
list.add(new Student("小二",2));
list.add(new Student("小三",3));
list.add(new Student("小四",4));
List<Student> delStudents = new ArrayList<>();
for (Student student : list){
if("小二".equals(student.getName())){
list.remove(student);
delStudents.add(student);
}
}
list.removeAll(delStudents);
}