Java SE 8 Programmer II — Question 205

Given:
class Student {
String course, name, city;
public Student (String name, String course, String city) {
this.course = course; this.name = name; this.city = city;
}
public String toString() {
return course + ":" + name + ":" + city;
}
and the code fragment:
List<Student> stds = Arrays.asList(
new Student ("Jessy", "Java ME", "Chicago"),
new Student ("Helen", "Java EE", "Houston"),
new Student ("Mark", "Java ME", "Chicago"));
stds.stream()
.collect(Collectors.groupingBy(Student::getCourse))
.forEach(src, res) -> System.out.println(scr));
What is the result?

Answer options

Correct answer: B

Explanation

The correct answer is B because the code is grouping students by their course, and the result is the distinct course names printed. Options A and C provide the full details of students, which is not the output format. Option D is incorrect as there are no compilation errors in the provided code.