Java stream averagingInt на несколько параметров
Есть класс
static class Student {
private String surname;
private String firstName;
private String secondName;
private int yearOfBirth;
private int course;
private int groupNumber;
private int mathGrade;
private int engGrade;
private int physicGrade;
private int programmingGrade;
private int chemistryGrade;
И есть метод, который добавляет в map студентов по курсу
public Map<Integer, Double> averageInt(List<Student> students) {
Map<Integer, Double> map2 = students.stream()
.collect(Collectors.groupingBy(Student::getCourse,
Collectors.averagingInt(Student::getEngGrade)));
return map2;
}
Однако мне необходимо, чтобы одновременно в одной map было несколько средних значений. Не только engGrade, а ещё и mathGrade, programmingGrade и так далее. Я думаю, map в таком случае должна иметь формат Map<Integer, List<Double>> , но не знаю как это сделать. Подскажите пожалуйста
Для примера, у меня сейчас выводит "Course = 1, average eng grade = ..."
А надо чтобы выводило "Course = 1, average eng grade = ..., average math grade = ...", т.е. чтобы в map было несколько значений Double