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


Ответы (0 шт):