Как конвертировать картуна картув Ява 8 - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть map, как

key= ["a1", "a2", "a3"] 
value = [["a1.value1", "a1.value2"],["a2.value1", "a2.value2"]]

, итоговая карта должна выглядеть как

key = ["a1", "a2", "a3"]
value = ["a1.value1, a1.value2", "a2.value1, a2.value2"]

Как мы можем использовать Collectors.joining в качестве промежуточного шага?

1 Ответ

0 голосов
/ 18 ноября 2018

Как мы можем использовать 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)));
...