【发布时间】:2018-10-20 08:09:01
【问题描述】:
当我尝试使用 removeIf() 从列表中删除元素时,它正在抛出 UnsupportedOperationException
public class T {
public static void main(String[] args) {
String[] arr = new String[] { "1", "2", "3" };
List<String> stringList = Arrays.asList(arr);
stringList.removeIf((String string) -> string.equals("2"));
}
}
谁能帮我理解为什么会发生这种情况以及我该如何纠正这个问题?
【问题讨论】:
-
Arrays.asList()返回一个不可修改的列表。您无法更改其内容 -
顺便说一句,您不需要 lambda 中的类型或括号:这些可以推断出来。
-
@Ernest 您可以更改列表,但只能使用
set(或replaceAll)。它是固定大小的,不是不可修改的。