java中list 如何一边遍历一边删除
时间: 2023-06-19 18:08:30 浏览: 49
在Java中,如果你要在遍历List的同时删除其中的元素,可以使用迭代器 Iterator 来实现。具体步骤如下:
1. 通过list.iterator()方法获取迭代器对象;
2. 在 while 循环中,使用 hasNext() 方法判断是否还有元素,如果有则使用 next() 方法获取当前元素;
3. 在 while 循环中,使用 Iterator 的 remove() 方法删除当前元素。
示例代码如下:
```java
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("C")) {
iterator.remove(); // 删除当前元素
}
System.out.println(element);
}
```
输出结果为:
```
A
B
D
E
```
注意:在使用迭代器删除元素时,不能直接使用list.remove()方法,否则会抛出ConcurrentModificationException异常,因为这样会导致 List 的结构发生变化,而迭代器不允许这样的操作。