java的stream对list dto进去去重
时间: 2024-11-07 14:06:55 浏览: 31
使用Java 8 Lambda表达式将实体映射到DTO的操作
在Java中,Stream API 可以非常方便地处理列表去重问题。如果你有一个List<Dto>类型的集合,其中每个Dto对象有可以作为唯一标识的属性,你可以使用`distinct()`方法配合lambda表达式来去除重复元素。假设Dto类有一个名为id的属性,你可以这样做:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public List<Dto> distinctDtoList(List<Dto> originalList) {
return originalList.stream()
.distinct() // 根据id字段去重
.collect(Collectors.toList());
}
```
这里,`distinct()`方法会返回一个新的流,其中所有元素都是唯一的,然后通过`collect()`方法将其转换回List。如果Dto类没有提供默认的equals和hashCode方法,确保覆盖它们以便基于id进行正确的比较。
阅读全文