### Question:
CollectorsDemo { public void collect_group(List<Student> students){ Map<String, List<Student>> groups = students.stream().collect(Collectors.groupingBy(Student::getSchool)); System.out.println("Collectors.groupingBy " + groups); Map<String, Map<String, List<Student>>> groups2 = students.stream().collect( Collectors.groupingBy(Student::getSchool, Collectors.groupingBy(Student::getMajor))); System.out.println("Collectors.groupingBy * 2" + groups2); Map<String, Long> groups3 = students.stream().collect(Collectors.groupingBy(Student::getSchool, Collectors.counting())); System.out.println("Collectors.groupingBy " + groups3); }  void filter(List<Student> students, List<Integer> nums); void map(List<Student> students); void match(List<Student> students); void reduce(List<Student> students); void collect_reduce(List<Student> students); void collect_group(List<Student> students); void collect_partitioning(List<Student> students);  }### Answer:
@Test public void collect_group(){ collectorsDemo.collect_group(studentList); }