我有一个具体问题。有一些类似的问题,但这些问题要么与 Python 相关,而不与 Java 相关,要么即使问题听起来相似,但要求也不同。
我有一个值列表。
List1 = {10, -2, 23, 5, -11, 287, 5, -99}
归根结底,我想根据它们的值拆分列表。我的意思是,如果该值大于零,它将保留在原始列表中,负值列表中的相应索引将被设置为零。如果该值小于零,它将转到负值列表,并将原始列表中的负值替换为零。
结果列表应该是这样的;
List1 = {10, 0, 23, 5, 0, 287, 5, 0}
List2 = {0, -2, 0, 0, -11, 0, 0, -99}
有什么办法可以用 Java 中的 Stream api 解决这个问题吗?
原文由 drJava 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你想在单个 Stream 操作中完成它,你需要一个自定义收集器: