下面的代码有什么问题? 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);
}
}
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
的新实例,它是完全可修改的。