import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
@Data
@Accessors(chain = true)
public class Person implements Serializable {
public Integer age;
public String address;
public static void main(String[] args) {
//制造数据
List<Person> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
//年龄重复
list.add(new Person().setAge(i % 5));
}
List<Person> collect = list.stream()
.collect(
//对收集到的流进行下一步操作
Collectors.collectingAndThen(
//将流收集成TreeSet------根据年龄排序并去重
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getAge))),
//最终结果,转换成List
ArrayList::new
)
);
System.out.println(collect);
}
}
java8 stream 流 对象去重
最新推荐文章于 2025-03-27 16:19:11 发布
该代码示例展示了如何在Java中利用Lombok的@Data和@Accessors注解简化对象创建,结合StreamAPI以及TreeSet的特性,实现列表中Person对象按年龄排序并去除重复值。主要涉及集合操作、排序算法以及数据序列化。
983

被折叠的 条评论
为什么被折叠?



