Найти в Дзене
DEBAGanov

Java 560. Имея список студентов, напишите код Java 8, чтобы получить имена трех лучших студентов?

Предположим, что у нас есть класс Student, который содержит поля name и score. Для того чтобы получить имена трех лучших студентов, можно использовать метод sorted() в сочетании с методом limit().

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Student {
private String name;
private int score;

public Student(String name, int score) {
this.name = name;
this.score = score;
}

public String getName() {
return name;
}

public int getScore() {
return score;
}
}

public class Main {
public static void main(String[] args) {
List<Student> students = Arrays.asList(
new Student("Alice", 70),
new Student("Bob", 50),
new Student("Charlie", 80),
new Student("David", 65),
new Student("Eva", 90),
new Student("Frank", 75)
);

List<String> topThreeStudents =
students.stream()
.sorted(Comparator.comparing(Student::getScore).reversed())
.limit(3)
.map(Student::getName)
.collect(Collectors.toList());

System.out.println("Top three students: " + topThreeStudents);
}
}

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

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

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

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

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