java List<TestDto> 使用steam流根据id去重
时间: 2024-10-14 20:02:29 浏览: 37
在Java中,你可以使用`Stream API`来处理List并通过`distinct()`方法去除重复项。假设你有一个名为`TestDto`的类,它有一个`id`字段,你可以这样做:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class TestDto {
private Long id;
// getters and setters...
}
public List<TestDto> deduplicateById(List<TestDto> list) {
return list.stream()
.distinct() // 去重操作,根据每个TestDto的id进行比较
.collect(Collectors.toList()); // 收集结果到一个新的List中
}
// 示例
List<TestDto> originalList = Arrays.asList(
new TestDto(1),
new TestDto(2),
new TestDto(1), // 重复元素
new TestDto(3)
);
List<TestDto> uniqueList = deduplicateById(originalList);
```
这个方法会返回一个新列表,其中所有`id`相同的`TestDto`只保留一个实例。
阅读全文