Загрузка данных


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

class Student {
    private String name;
    private int age;
    private double averageGrade;

    public Student(String name, int age, double averageGrade) {
        this.name = name;
        this.age = age;
        this.averageGrade = averageGrade;
    }

    public String getName() { return name; }
    public int getAge() { return age; }
    public double getAverageGrade() { return averageGrade; }

    @Override
    public String toString() {
        return name + " (" + age + ", " + averageGrade + ")";
    }
}

public class Main {
    public static void main(String[] args) {
        List<Student> students = Arrays.asList(
                new Student("Анна", 20, 4.5),
                new Student("Максимилиан", 22, 3.8),
                new Student("Иван", 19, 4.9),
                new Student("Ольга", 21, 4.2),
                new Student("Дмитрий", 23, 3.5)
        );

        System.out.println("По среднему баллу (возрастание):");
        students.stream()
                .sorted(Comparator.comparingDouble(Student::getAverageGrade))
                .forEach(System.out::println);

        System.out.println("\nПо длине имени (убывание):");
        students.stream()
                .sorted(Comparator.comparingInt((Student s) -> s.getName().length()).reversed())
                .forEach(System.out::println);

        System.out.println("\nПо возрасту (убывание):");
        students.stream()
                .sorted(Comparator.comparingInt(Student::getAge).reversed())
                .forEach(System.out::println);
    }
}