У меня есть список сотрудников следующим образом:
[Employee{id="1", NID="A123", wages=5000},
Employee{id="2", NID="B123", wages=1000},
Employee{id="3", NID="C123", wages=2000},
Employee{id="4", NID="C123", wages=3000}]
Мне нужно иметь возможность извлекать только уникальные объекты, и там, где NID одинаков, мне нужно извлекать объект с максимальным Id. Таким образом, окончательный список должен быть как
[Employee{id="1", NID="A123", wages=5000},
Employee{id="2", NID="B123", wages=1000},
Employee{id="4", NID="C123", wages=3000}]
Я знаю, что это можно сделать с помощью вложенных циклов for, но я хочу сделать это с потоками Java. С помощью группы я мог определить, кто из сотрудников является дубликатом в списке, но до сих пор не могу понять, как получить список, как указано выше.
Map<String, List<Employee>> groupByNid = employeeList.stream().collect(Collectors.groupingBy(Employee::getNID));
Спасибо за помощь.
Ashley