百度云做网站空间,深圳教育集团网站建设,端端网站开发,google首页遍历删除List中的元素有很多种方法#xff0c;当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式#xff1a; 1.通过增强的for循环删除符合条件的多个元素 2.通过增强的for循环删除符合条件的一个元素 3.通过普通的for删除删除符合条件的多个元素…遍历删除List中的元素有很多种方法当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式 1.通过增强的for循环删除符合条件的多个元素 2.通过增强的for循环删除符合条件的一个元素 3.通过普通的for删除删除符合条件的多个元素 4.通过Iterator进行遍历删除符合条件的多个元素 [java] view plaincopy /** * 使用增强的for循环 * 在循环过程中从List中删除非基本数据类型以后继续循环List时会报ConcurrentModificationException */ public void listRemove() { ListStudent students this.getStudents(); for (Student stu : students) { if (stu.getId() 2) students.remove(stu); } } [java] view plaincopy /** * 像这种使用增强的for循环对List进行遍历删除但删除之后马上就跳出的也不会出现异常 */ public void listRemoveBreak() { ListStudent students this.getStudents(); for (Student stu : students) { if (stu.getId() 2) { students.remove(stu); break; } } } [java] view plaincopy /** * 这种不使用增强的for循环的也可以正常删除和遍历, * 这里所谓的正常是指它不会报异常但是删除后得到的 * 数据不一定是正确的这主要是因为删除元素后被删除元素后 * 的元素索引发生了变化。假设被遍历list中共有10个元素当 * 删除了第3个元素后第4个元素就变成了第3个元素了第5个就变成 * 了第4个了但是程序下一步循环到的索引是第4个 * 这时候取到的就是原本的第5个元素了。 */ public void listRemove2() { ListStudent students this.getStudents(); for (int i0; istudents.size(); i) { if (students.get(i).getId()%3 0) { Student student students.get(i); students.remove(student); } } } [java] view plaincopy /** * 使用Iterator的方式可以顺利删除和遍历 */ public void iteratorRemove() { ListStudent students this.getStudents(); System.out.println(students); IteratorStudent stuIter students.iterator(); while (stuIter.hasNext()) { Student student stuIter.next(); if (student.getId() % 2 0) stuIter.remove();//这里要使用Iterator的remove方法移除当前对象如果使用List的remove方法则同样会出现ConcurrentModificationException } System.out.println(students); } 转载于:https://www.cnblogs.com/toSeeMyDream/p/5818937.html