每当我尝试从 List
中删除元素时使用 list.removeIf(condition) 它会抛出 UnsupportedOperationException
:
public class Test
{
public static void main(final String[] args)
{
String[] stringArray = new String[]{"A","B","C","D"};
List<String> stringList = Arrays.asList(stringArray);
stringList.forEach(System.out::println);
stringList.removeIf((String string) -> string.equals("B"));
stringList.forEach(System.out::println);
}
}
为什么不工作?
最佳答案
Arrays.asList
返回一个固定大小的 List
- 由您传入的数组支持 - 因此,就像您无法从列表中删除(或添加)元素一样数组,您无法从列表中删除(或添加)元素。
使用java.util.ArrayList
以便能够删除元素:
List<String> stringList = new ArrayList<>(Arrays.asList(stringArray));
关于java - List 的 removeIf() 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50941743/