我有一组学生-Set<Student> students

class Student{
    String Id;
    String getId(){ return Id;}
.....
}

我正在尝试使用上面设置的条目初始化Map<String,List<StudentResult>>:
Map<String,List<StudentResult>> studentResultMap = students.keySet().stream().collect(
                                                Collectors.toMap(x -> x.getId(),new ArrayList<StudentResult>()));

但这不会编译-如何实现?

最佳答案

这是您的问题所在:

Map<String,List<StudentResult>> studentResultMap = students
    .stream().collect(Collectors.toMap(x -> x.getId(), new ArrayList<StudentResult>()));

您需要将两个函数传递给Collectors.toMap,但是,您要传递List实例作为第二个参数
Map<String,List<StudentResult>> studentResultMap = students
    .stream().collect(Collectors.toMap(x -> x.getId(), x -> new ArrayList<StudentResult>()));

10-07 15:41