java list根据字段去重
时间: 2023-09-07 13:17:33 浏览: 100
list去掉重复对象
5星 · 资源好评率100%
可以使用Java 8的Lambda表达式和Stream API来根据字段去重一个List。以下是一个示例代码:
```java
List<Employee> employees = Arrays.asList(
new Employee("Alice", 25),
new Employee("Bob", 26),
new Employee("Alice", 25),
new Employee("Charlie", 27),
new Employee("Bob", 26)
);
List<Employee> distinctEmployees = employees.stream()
.distinct()
.collect(Collectors.toList());
System.out.println(distinctEmployees);
```
其中,Employee类的定义如下:
```java
public class Employee {
private String name;
private int age;
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public boolean equals(Object obj) {
if (obj == this) return true;
if (!(obj instanceof Employee)) return false;
Employee other = (Employee) obj;
return name.equals(other.name) && age == other.age;
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
```
在上面的代码中,我们先创建了一个包含重复元素的List。然后,我们使用distinct()方法去重,并使用collect(Collectors.toList())方法将结果收集到一个新的List中。注意,我们需要在Employee类中实现equals()和hashCode()方法来进行去重。
阅读全文