我想要做的在下面的 2 个流调用中显示。我想根据某些条件将一个集合拆分为 2 个新集合。理想情况下,我想在 1 中执行此操作。我已经看到了用于流的 .map 函数的条件,但找不到 forEach 的任何内容。实现我想要的最佳方式是什么?
animalMap.entrySet().stream()
.filter(pair-> pair.getValue() != null)
.forEach(pair-> myMap.put(pair.getKey(), pair.getValue()));
animalMap.entrySet().stream()
.filter(pair-> pair.getValue() == null)
.forEach(pair-> myList.add(pair.getKey()));
原文由 user3768533 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需将条件放入 lambda 本身,例如
当然,这假设两个集合(
myMap
和myList
)都在上述代码之前声明和初始化。更新: 使用
Map.forEach
使代码更短,更高效和可读,正如 Jorn Vernee 建议的那样: