[英]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
操作沒用,因為你不想更改字符串本身,或者你必須將它map
到Entry<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.