【发布时间】:2018-06-28 14:24:16
【问题描述】:
我有一份员工名单如下:
[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 流来做到这一点。我可以使用 group by 找到列表中重复的员工,但我仍然不知道如何获取上面的列表。
Map<String, List<Employee>> groupByNid = employeeList.stream().collect(Collectors.groupingBy(Employee::getNID));
感谢帮助。
阿什利
【问题讨论】:
标签: java java-stream