我有使用Java8的代码:
Listlist = new ArrayList (); list.add(3); list.add(5); list.add(4); list.add(2); list.add(5); list = list.stream().filter(i -> i >= 3).collect(Collectors.toList());
原始列表是[3,5,4,2,5].在"过滤"和"收集"操作之后,列表变为[3,5,4,5].
是否所有操作都在原始列表中执行,并且不创建新列表?或者在"过滤"和"收集"操作之后,返回一个新创建的列表并忽略原始列表?
对collect
with 的调用Collectors.toList()
将创建一个新列表.原始列表不受流式传输的影响.
如果您确实想要修改原始列表,请考虑使用removeIf
:
list.removeIf(i -> i < 2);