id (целое число): уникальный идентификатор работника, имя (строка): имя работника и зарплата (двойной): зарплата работника. Сначала (в порядке убывания). < /p>
на основе имени: если зарплаты равны, сортируйте по имени в восходящем алфавитном порядке (естественная сортировка). < /p>
basd на идентификаторе: если оба зарплаты и имя равны, сортируйте по идентификатору.
Код: Выделить всё
import java.util.*;
class Employee {
private int id;
private String name;
private double salary;
public Employee(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public int getId() { return id; }
public String getName() { return name; }
public double getSalary() { return salary; }
@Override
public String toString() {
return "Employee{id=" + id + ", name='" + name + "', salary=" + salary + "}";
}
}
public class EmployeeSorter {
public static void main(String[] args) {
List employees = new ArrayList();
employees.add(new Employee(101, "John", 50000));
employees.add(new Employee(102, "Alice", 60000));
employees.add(new Employee(103, "Bob", 50000));
employees.add(new Employee(104, "Alice", 60000));
employees.add(new Employee(105, "David", 40000));
// Attempt to sort the list of employees
Collections.sort(employees, Comparator.comparing(Employee::getSalary).reversed());
System.out.println("Sorted Employee List:");
for (Employee emp : employees) {
System.out.println(emp);
}
}
}
Я ищу эффективный и чистый способ реализации многоуровневой сортировки с использованием коллекций Java. И решение должно следовать передовым методам реализации пользовательских компараторов.
Подробнее здесь: https://stackoverflow.com/questions/795 ... es-in-java