iterator.remove(); 报错 java.lang.UnsupportedOperationException
时间: 2024-01-04 07:20:47 浏览: 304
iterator.remove()方法报错java.lang.UnsupportedOperationException是因为在使用该方法时,迭代器所在的集合不支持修改操作。这通常发生在使用Arrays.asList()方法创建的List或使用Collections.unmodifiableList()方法创建的不可修改的List上。
解决这个问题的方法是使用可修改的List,例如ArrayList,而不是使用不可修改的List。如果你需要在迭代过程中删除元素,可以使用ListIterator的remove()方法来删除元素。
以下是一个示例代码,演示了如何使用ListIterator的remove()方法来删除元素:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Main {
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]
}
}
```
在上面的代码中,我们创建了一个可修改的ArrayList,并使用ListIterator遍历列表。当遇到元素为"banana"时,我们使用ListIterator的remove()方法删除该元素。最后,我们打印出修改后的列表。
阅读全文