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

Mar*_*uca 2 java lambda hashmap java-8 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()))
Run Code Online (Sandbox Code Playgroud)

我的方法findAllUsers将String作为参数.我想用迭代替换list.get(0),因此它将为每个元素调用函数并存储在Map中.我尝试了list.foreach,但它返回void,所以没用

Eug*_*ene 6

看起来你需要:

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