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);
}
}