То, что я хочу сделать, показано ниже в двух потоковых вызовах. Я хочу разбить коллекцию на две новые коллекции, основанные на некоторых условиях. В идеале я хочу сделать это в 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()));