以下代码有什么问题? list.removeIf(p -> p.contains("hello"));
import java.util.*;
public class NewClass1 {
public static void main(String[] args) {
List<String> list = Arrays.asList("hello", " hello world", " hello china", "chi", "hi");
System.out.println(list);
list.removeIf(p -> p.contains("hello"));
System.out.println(list);
}
}
答案 0 :(得分:3)
Arrays.asList()
返回固定大小的列表。请在此处查看javadoc:https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList(T...)
因此,您无法在返回的List对象中添加或删除项目。
相反,您可以创建自己的列表实例:
List<String> list = new ArrayList<>(Arrays.asList("hello", " hello world", " hello china", "chi", "hi"));
您仍然可以使用asList()
方便地创建列表,但通过构建ArrayList
的新实例,它可以完全修改。