我有一个 Map<String, List<String>>
,我想将其转换为一个 Map<String, String>
,结果的值将是第一个Map的值的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>;
}
我该如何做到这一点?