![](/img/trans.png)
[英]Use Java 8 Streaming to convert List<Map> to Map<String,List<Map>>, using value as key
[英]Convert List<String> to Map<String, List<String>> with list value as map key and map value with empty list java 8
這可能是一個愚蠢的問題。 我需要使用 Java 8 將List<String>
轉換為Map<String, List<String>>
。所有列表值("20", "42", "55")
都應該是創建映射的關鍵,而創建地圖的 value 屬性應該是一個空列表。
盡管以下代碼完成了該任務,但它將列表值保存為映射鍵和映射值的第一個索引。
如何使用 Java 8 特性解決這個問題??
List<String> list = Arrays.asList("20", "42", "55");
Map<String, List<String>> serviceMap =
list.stream().collect(Collectors.toMap(Function.identity(), Arrays::asList));
將Arrays::asList
作為值映射器傳遞意味着每個鍵的值將是一個包含該鍵作為其單個元素的List
,但您說您希望該值應該是一個空List
。
如果該值應該是一個可修改的空List
,您應該創建一個新的ArrayList
作為Map
的值:
List<String> list = Arrays.asList("20", "42", "55");
Map<String, List<String>> serviceMap =
list.stream()
.collect(Collectors.toMap(Function.identity(), a -> new ArrayList<>()));
只需遍歷列表中的每個 String 並將其添加為映射鍵,將新的 ArrayList 作為值,如下所示:
Map<String, List<String> result = Arrays.asList("20", "42", "55").stream()
.collect(Collectors.toMap(Function.identity(), a -> new ArrayList<String>()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.