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


import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>(Arrays.asList(
            new Student("Иван", 19, 4.2),
            new Student("Александра", 18, 4.8),
            new Student("Петр", 21, 3.9),
            new Student("Мария", 20, 4.5),
            new Student("Константин", 22, 3.5)
        ));

        // 1. По среднему баллу (по возрастанию)
        students.sort((a, b) -> Double.compare(a.getAvg(), b.getAvg()));
        System.out.println("По среднему баллу:");
        students.forEach(s -> System.out.println(s));

        // 2. По длине имени (по убыванию)
        students.sort((a, b) -> b.getName().length() - a.getName().length());
        System.out.println("\nПо длине имени:");
        students.forEach(s -> System.out.println(s));

        // 3. По возрасту (по убыванию)
        students.sort((a, b) -> b.getAge() - a.getAge());
        System.out.println("\nПо возрасту:");
        students.forEach(s -> System.out.println(s));
    }
}

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

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

    public String getName() { return name; }
    public int getAge() { return age; }
    public double getAvg() { return avg; }

    @Override
    public String toString() {
        return name + ", " + age + " лет, ср. балл " + avg;
    }
}