cod*_*erz 13 java list java-8 java-stream
我有使用Java8的代码:
List<Integer> list = new ArrayList<Integer>();
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());
Run Code Online (Sandbox Code Playgroud)
原始列表是[3,5,4,2,5].在"过滤"和"收集"操作之后,列表变为[3,5,4,5].
是否所有操作都在原始列表中执行,并且不创建新列表?或者在"过滤"和"收集"操作之后,返回一个新创建的列表并忽略原始列表?
Tag*_*eev 21
如果您确实想要修改原始列表,请考虑使用removeIf
:
list.removeIf(i -> i < 2);
Run Code Online (Sandbox Code Playgroud)
流操作要么是中间操作,要么是最终操作。 中间操作返回一个流,以便您可以链接多个中间操作。 终端操作返回 void 或其他内容。
大多数流操作都是非干扰的,这意味着它们不会修改流的数据源。但是通过调用该collect
方法,您将创建一个新列表并将其分配给list
归档时间: |
|
查看次数: |
11370 次 |
最近记录: |