起始点:
我有一个员工列表:
假设
基于
输出应该如下所示:
我尝试的方式是:
但是这样第一个匹配项将会被保留在
"...我不知道如何在这里添加另一个条件来保留年龄最大的那个。"
public class Employee {
private String id;
private String name;
private String age;
}
我有一个员工列表:
List<Employee> employee;
列表中的员工示例:{id="1", name="John", age=10}
{id="2", name="Ana", age=12}
{id="3", name="John", age=23}
{id="4", name="John", age=14}
假设
age
是唯一的。基于
name
属性,如何从列表中删除所有重复项并保留具有最大age
的条目到输出中?输出应该如下所示:
{id="2", name="Ana", age=12}
{id="3", name="John", age=23}
我尝试的方式是:
HashSet<Object> temp = new HashSet<>();
employee.removeIf(e->!temp.add(e.getName()));
但是这样第一个匹配项将会被保留在
employee
中。{id="1", name="John", age=10}
{id="2", name="Ana", age=12}
"...我不知道如何在这里添加另一个条件来保留年龄最大的那个。"
HashSet<Object>
?你的员工对象是否可比较?只需确保equals
将具有相同名称的对象报告为相等。 - Naman