позволяет нам предположить, у меня есть список Employee как:Сортировка и группировка списка с помощью лямбда-
private static List<Employee> list = new ArrayList<Employee>();
static {
list.add(new Employee("Joe", 100000, 1980));
list.add(new Employee("Tim", 50000, 1982));
list.add(new Employee("Mike", 90000, 1970));
list.add(new Employee("Rick", 50000, 1955));
list.add(new Employee("Andy", 60000, 1966));
list.add(new Employee("Tim", 10000, 1995));
list.add(new Employee("Tony", 130000, 1991));
list.add(new Employee("Timmy", 150000, 1988));
list.add(new Employee("Rich", 50000, 1980));
list.add(new Employee("Andrew", 160000, 1970));
list.add(new Employee("Ton", 150000, 1958));
list.add(new Employee("Jose", 40000, 1970));
list.add(new Employee("Timothy", 50000, 1996));
list.add(new Employee("Ricardo", 50000, 1988));
list.add(new Employee("Gemasio", 60000, 1971));
list.add(new Employee("Mike", 80000, 1992));
}
Теперь то, что я хочу, чтобы создать список, который делают некоторую фильтрацию как: зарплата> х и зарплата < у и сортировать по имени сотрудника, а затем снова сортировать, если несколько работник имеют одинаковое имя, но разные зарплаты, но теперь используют их зарплаты
, что я сделал до сих пор:
System.out.println(
list.stream()
.filter(e -> e.getSalary() > 55000)
.filter(e -> e.getSalary() < 120000)
.sorted(Comparator.comparing(Employee::getName))
.collect(Collectors.groupingBy(Employee::getName))
);
для например: после сортировки только имени я получил ::
<name: Andy salary: 60000 year of birth: 1966>,
<name: Gemasio salary: 60000 year of birth: 1971>,
<name: Joe salary: 100000 year of birth: 1980>,
<name: Mike salary: 90000 year of birth: 1970>,
<name: Mike salary: 80000 year of birth: 1992>
здесь два микрофона, но теперь в течение этого два Майка я хочу, чтобы отсортировать их зарплату в decendeing формы, так что новый результат будет:
<name: Andy salary: 60000 year of birth: 1966>,
<name: Gemasio salary: 60000 year of birth: 1971>,
<name: Joe salary: 100000 year of birth: 1980>,
<name: Mike salary: 80000 year of birth: 1970>,
<name: Mike salary: 90000 year of birth: 1992>
и, кроме Майка я не хочу, чтобы изменить другие заказы
, но я не могу получить желаемый результат будет кто-нибудь пожалуйста, помогите мне, что не так и что мне нужно сделать, чтобы Furt ее отсюда. Спасибо :)
Возможно ли иметь два Майка с одинаковой зарплатой (и позволяет говорить с разным годом рождения)? Если да, как вы хотите с ними справиться? – Pshemo
да два сотрудника могут иметь одно и то же имя и одинаковые зарплаты с разными добами, его можно управлять с помощью hashcode() –