繁体   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