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

时间:2018-05-03 10:12:38

标签: 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将String作为参数。 我想用迭代替换list.get(0),因此它将为每个元素调用函数并存储在Map中。我尝试了list.foreach但它返回void所以没有用

1 个答案:

答案 0 :(得分:6)

似乎你需要:

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