use*_*187 2 java java-8 java-stream
考虑我有一个列表,其中包含两种类型的数据,一种是有效的,另一种是无效的.
如果我开始过滤此列表,我可以在最后收集两个列表吗?
我们可以从Java 8流中收集两个列表吗?
如果你有办法List根据条件对s的元素进行分组,你不能不这样做.在这种情况下,您可以使用Collectors.groupingBy()将返回Map<Foo, List<Bar>>其中Map两个List 的值的值.
请注意,在您的情况下,您不需要流只进行过滤.
使用过滤无效列表removeIf()并在第一个列表中添加其中的所有元素:
invalidList.removeIf(o -> conditionToRemove);
goodList.addAll(invalidList);
Run Code Online (Sandbox Code Playgroud)
如果你不想改变状态goodList你可以做一个浅的副本:
invalidList.removeIf(o -> conditionToRemove);
List<Foo> terminalList = new ArrayList<>(goodList);
terminalList.addAll(invalidList);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2070 次 |
| 最近记录: |