对照示例
public static void main(String[] args) {
final List<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
list.remove("cc");
System.out.println(list);
}
结果:
Stream.toList
public static void main(String[] args) {
String[] array = new String[]{"aa", "bb", "cc"};
final List<String> list = Stream.of(array).toList();
list.remove("cc");
System.out.println(list);
}
结果:
程序报错,怀疑Stream.toList()方法返回的是一个连内容都不可改变的List,有点类似List.of()方法生成的List,比如下面代码也会报和上面代码一样的错误:
public static void main(String[] args) {
final List<String> list = List.of("aa", "bb", "cc");
list.remove("cc");
System.out.println(list);
}
解决方案
public static void main(String[] args) {
String[] array = new String[]{"aa", "bb", "cc"};
final List<String> list = new ArrayList(Stream.of(array).toList());
// final List<String> list = new ArrayList(Arrays.asList(array));
list.remove("cc");
System.out.println(list);
}
结论:
使用List.of()和Stream.toList()生成的List的内容是不能发生变化的
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 关于Stream.toList()方法使用小记
发表评论 取消回复