簡體   English   中英

如何轉換地圖 <String, List<String> &gt;到地圖 <String, String> 在java 8中

[英]How to Convert a Map<String, List<String>> to Map<String, String> in java 8

我有一張map

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

生成的Map應該是這樣的

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

我們如何使用Collectors.joining作為中間步驟?

我們如何使用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)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM