繁体   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