簡體   English   中英

Java8:通過連接值將Map <String,List <String >>轉換為Map <String,String>

[英]Java8: Transform Map<String,List<String>> into Map<String,String> by joining the values

我有一個Map<String, List<String>> ,我想將其轉換為Map<String, String> ,結果的值將是第一個地圖值的String.join(" - ", values)

我知道如何這樣做:

public Map<String,String> flatten( Map<String, List<String>> attributes) {
      Map<String, String> map = new HashMap<>();
      attributes.forEach((k,v) -> map.put( k, String.join(" - ", v)));
      return map;
}

但我想擺脫new HashMap<>()並直接對輸入進行轉換。
我懷疑collect(Collectors.groupingBy( something ) )但我無法弄清楚如何。
我想要的是這樣的:

public Map<String,String> flatten( Map<String, List<String>> attributes) {
    return attributes.entrySet().stream().<something>;
}

我該怎么辦?

不需要分組。 只需將條目收集到新Map

Map<String, String> map = 
    attributes.entrySet()
              .stream()
              .collect(Collectors.toMap(Map.Entry::getKey,
                                        e-> String.join(" - ", e.getValue())));

暫無
暫無

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

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