簡體   English   中英

轉換列表<String>到地圖<String, List<String> &gt; 以列表值為映射鍵,以空列表為映射值 java 8

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM