Найти тему
DEBAGanov

Java 562. Учитывая список студентов, как вы получаете предметы, предлагаемые в колледже?

Чтобы получить список предметов, предлагаемых в колледже, можно использовать метод flatMap() для преобразования списка студентов в список предметов, и затем удалить дубликаты с помощью метода distinct().

Предположим, что у нас есть класс Student, который содержит поля name и courses. Поле courses содержит список предметов, которые брал студент. Для того чтобы получить список предметов, предлагаемых в колледже, нужно сначала объединить все списки предметов всех студентов в один список. Это можно сделать с помощью метода flatMap().

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Student {
private String name;
private List<String> courses;

public Student(String name, String... courses) {
this.name = name;
this.courses = Arrays.asList(courses);
}

public String getName() {
return name;
}

public List<String> getCourses() {
return courses;
}
}

public class Main {
public static void main(String[] args) {
List<Student> students = Arrays.asList(
new Student("Alice", "Math", "History"),
new Student("Bob", "English", "Math", "Science"),
new Student("Charlie", "Art", "Music"),
new Student("David", "Math", "Science")
);

List<String> courses =
students.stream()
.flatMap(s -> s.getCourses().stream())
.distinct()
.collect(Collectors.toList());

System.out.println("College courses: " + courses);
}
}

В этом примере мы создаем список students, содержащий объекты класса Student, заполняем его данными и затем используем метод flatMap() для объединения всех списков предметов всех студентов в один список. Затем мы используем метод distinct() для удаления дубликатов из этого списка. Результатом является список всех предметов, которые предлагаются в колледже.

Затем мы выводим этот список в консоль.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov