import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
class Employee {
private String name;
private double salary;
private String department;
public Employee(String name, double salary, String department) {
this.name = name;
this.salary = salary;
this.department = department;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public String getDepartment() {
return department;
}
}
public class EmployeeSorting {
public static List<Employee> sortEmployees(List<Employee> employees) {
return employees.stream()
.sorted(Comparator.comparing(Employee::getDepartment)
.thenComparingDouble(Employee::getSalary).reversed()
.thenComparing(Employee::getName))
.collect(Collectors.toList());
}
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee("Alice", 5000.0, "HR"));
employees.add(new Employee("Bob", 6000.0, "IT"));
employees.add(new Employee("Charlie", 6000.0, "IT"));
employees.add(new Employee("David", 5000.0, "HR"));
List<Employee> sortedEmployees = sortEmployees(employees);
sortedEmployees.forEach(employee -> System.out.println(employee.getName() + " - " + employee.getSalary() + " - " + employee.getDepartment()));
}
}