簡體   English   中英

字符串與流到HashMap在Java 8中的字符串

[英]Set of String with Stream to HashMap in Java 8

如何使用Stream創建字符串的字符串和字符串列表的HashMap?

Set<String> mySet;
Map<String, List<String>> = mySet.stream().map(string -> {
   // string will be my key
   // I have here codes that return List<String>
   // what to return here?
}).collect(Collectors.toMap(.....)); // what codes needed here?

謝謝。

您不需要map()步驟。 String生成List<String>的邏輯應該傳遞給Collectors.toMap()

Map<String, List<String>> map = 
    mySet.stream()
         .collect(Collectors.toMap(Function.identity(),
                                   string -> {
                                       // put logic that returns List<String> here
                                   }));

這里的map操作沒用,因為你不想更改字符串本身,或者你必須將它mapEntry<String, List<String>>然后收集它們,但這並不容易。

相反,只需構建地圖,將字符串作為鍵,並將codes作為值:

Map<String, List<String>> map = 
        mySet.stream().collect(Collectors.toMap(str->str, str-> getCodesFromStr(str));

如果你想知道,如何使用map操作並使用Entry (一對):

Map<String, List<String>> = mySet.stream().map(str-> 
    new AbstractMap.SimpleEntry<String,List<String>>(str, getCodesFromStr(str))
).collect(Collectors.toMap(Entry::getKey, Entry::getValue)); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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