Сортировка в примере уже правильная. Нужно определить Employee с getSalary и читаемым toString; порядок будет Maxim, Ivan, Kirill, Stepan, Leonid.
Сортировка списка сотрудников по возрастанию зарплаты и вывод в удобочитаемом виде
Сортировка в примере уже правильная. Нужно определить Employee с getSalary и читаемым toString; порядок будет Maxim, Ivan, Kirill, Stepan, Leonid.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В проекте определён класс Employee, представляющий данные о работнике. В методе main формируется коллекция объектов этого класса, заполняется несколькими записями и выводится в консоль. Необходимо поправить вывод, а также отсортировать всех сотрудников по возрастанию их заработной платы. Как реализовать требуемое?
class MyCode {
public static void main(String[] args) {
System.out.println("Hello Java");
List<Employee> staff = new ArrayList<>();
staff.add(new Employee("Ivan", 25, 500000));
staff.add(new Employee("Kirill", 30, 600000));
staff.add(new Employee("Stepan", 20, 750000));
staff.add(new Employee("Maxim", 21, 250000));
staff.add(new Employee("Leonid", 35, 1500000)); // исправлен неверный символ
// сортировка по зарплате по возрастанию
staff.sort(Comparator.comparingInt(Employee::getSalary));
for (Employee emp : staff) {
System.out.println(emp.toString());
}
}
}
Ответ
Сортировка в примере уже правильная. Нужно определить Employee с getSalary и читаемым toString; порядок будет Maxim, Ivan, Kirill, Stepan, Leonid.
Минимальное дополнение к указанному main:
class Employee {
private final String name;
private final int age;
private final int salary;
Employee(String name, int age, int salary) {
this.name = name; this.age = age; this.salary = salary;
}
int getSalary() { return salary; }
@Override public String toString() {
return name + ", age=" + age + ", salary=" + salary;
}
}
Добавьте imports List, ArrayList и Comparator из java.util. Суммы по порядку: 250000, 500000, 600000, 750000, 1500000. Comparator.comparingInt безопаснее сравнения через вычитание, способного переполниться.