ListIterator 删除元素报错 java.lang.UnsupportedOperationException
时间: 2024-01-05 22:21:08 浏览: 146
Iterator遍历过程中list删除导致异常
ListIterator 删除元素报错 java.lang.UnsupportedOperationException 是因为ListIterator接口的remove()方法不支持删除操作。ListIterator接口是Iterator接口的子接口,它提供了更多的功能,例如可以向前遍历列表并在遍历过程中修改列表。然而,ListIterator的remove()方法只能在调用next()或previous()方法之后才能使用,用于删除上一次调用next()或previous()方法返回的元素。如果在调用remove()方法之前没有调用next()或previous()方法,或者在调用remove()方法之后再次调用remove()方法,都会抛出java.lang.IllegalStateException异常。
以下是一个示例代码,演示了如何正确使用ListIterator的remove()方法删除元素:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("banana")) {
iterator.remove();
}
}
System.out.println(list); // 输出:[apple, orange]
}
}
```
阅读全文