我们要删除ArrayList集合中的元素有2种方法:
#1,普通for循环
#2,迭代器删除
下面通过代码来演示一下:
package com.lianxi2;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
// 1,普通for循环删除,索引要--
/*
* for(int i = 0; i < list.size(); i++) { if("b".equals(list.get(i))) {
* list.remove(i--); //通过索引删除元素 } }
*/
// 2,迭代器删除
/*
* Iterator<String> it = list.iterator(); while(it.hasNext()) {
* if("b".equals(it.next())) {
* //list.remove("b");
* //不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常 it.remove(); } }
*/
/*
* for(Iterator<String> it2 = list.iterator(); it2.hasNext();) {
* if("b".equals(it2.next())) { //list.remove("b");
* //不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常 it2.remove(); } }
*/
// 3,增强for循环,增强for循环不能删除,只能遍历
for (String string : list) {
if ("b".equals(string)) {
list.remove("b");
}
}
System.out.println(list);
}
}