Как мы можем использовать Collectors.joining в качестве промежуточного шага?
Вы имеете в виду, что на этапе сбора ...
Да, вы можете:
Map<String, String> result =
source.entrySet()
.stream()
.collect(toMap(Map.Entry::getKey,
e -> e.getValue().stream().collect(joining(", "))));
, но , лучше использовать String.join
:
Map<String, String> result =
source.entrySet()
.stream()
.collect(toMap(Map.Entry::getKey, e -> String.join(", ", e.getValue())));
или без потокового варианта:
Map<String, String> resultSet = new HashMap<>();
source.forEach((k, v) -> resultSet.put(k, String.join(",", v)));