Java 8 遍历列表并存储在 Map 中

标签 java lambda java-8 hashmap java-stream

List<String> list =new ArrayList<>();
list.add("abcd");
list.add("afsd");
list.add("addd");

Map<String, List<Person>> ordersByInstrumentId = findService.findAllUsers(**list.get(0)**)
                        .stream()
                        .collect(Collectors.groupingBy(Dummy::getId, Collectors.toList()))

我的方法 findAllUsers 接受一个字符串作为参数。 我想用迭代替换 list.get(0),因此它将为每个元素调用函数并存储在 Map 中。我试过 list.foreach 但它返回 void 所以没有用

最佳答案

看起来你需要:

list.stream()
    .flatMap(x -> findService.findAllUsers(x).stream())
    .collect(Collectors.groupingBy(Dummy::getId, Collectors.toList()));

关于Java 8 遍历列表并存储在 Map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50152444/

相关文章:

java - 返回客户端时 CXF WS 调度失败

JavaScript:如何处理所有后续的元素对?

c++ - Lambda 捕获 shared_ptr 成员

java - 使用 checkStyle 强制执行 java 8 约定

java - 在java 8中迭代List并在迭代时调用另一个函数

java - 需要有关 java.io.UnixFileSystem.getspace 方法的信息,执行哪个 unix 命令?

java - 如何读取二进制文件中的整数和日期

angularjs - 如何将 lambda 表达式传递给 AngularJS 指令

java - 通过排序规则合并两个流

java - 无法从 PC 找到 Android 应用程序创建的文件夹