[英]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.