作者:手机用户2402851335 | 来源:互联网 | 2022-12-08 17:26
考虑我有一个列表,其中包含两种类型的数据,一种是有效的,另一种是无效的.
如果我开始过滤此列表,我可以在最后收集两个列表吗?
1> davidxxx..:
我们可以从Java 8流中收集两个列表吗?
如果你有办法List
根据条件对s的元素进行分组,你不能不这样做.在这种情况下,您可以使用Collectors.groupingBy()
将返回Map>
其中Map
两个List 的值的值.
请注意,在您的情况下,您不需要流只进行过滤.
使用过滤无效列表removeIf()
并在第一个列表中添加其中的所有元素:
invalidList.removeIf(o -> conditionToRemove);
goodList.addAll(invalidList);
如果你不想改变状态goodList
你可以做一个浅的副本:
invalidList.removeIf(o -> conditionToRemove);
List terminalList = new ArrayList<>(goodList);
terminalList.addAll(invalidList);