[英]Java8 transform a [List<Object>, String] in a Map<Object, 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.