在Java中,循环删除List中的元素可以通过迭代器(Iterator)或者增强型for循环(Enhanced for loop)来实现。以下是两种方法的详细介绍:
- 使用迭代器(Iterator):
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if ("two".equals(item)) {
iterator.remove();
}
}
System.out.println(list);
}
}
在这个例子中,我们使用了迭代器(Iterator)来遍历List,并在遍历过程中调用remove()
方法来删除指定的元素。
- 使用增强型for循环(Enhanced for loop):
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
for (String item : list) {
if ("two".equals(item)) {
list.remove(item);
}
}
System.out.println(list);
}
}
在这个例子中,我们使用了增强型for循环(Enhanced for loop)来遍历List,并在遍历过程中调用remove()
方法来删除指定的元素。
需要注意的是,在循环删除List中的元素时,使用迭代器(Iterator)是最安全的方法,因为它可以避免在删除元素时出现的并发修改异常(ConcurrentModificationException)。而使用增强型for循环(Enhanced for loop)可能会导致并发修改异常,因为它在内部使用了迭代器(Iterator),但是在删除元素时可能会破坏迭代器的状态。