1

首先我们有一个对象属性如下

@Data
public class Person {
    private String id;
    private String name;
    private String sex;
}

我们根据属性name来去重,去重代码如下

List<Person> persons = new ArrayList();
//赋值初始化过程省略
List<Person> uniqueByName = persons.stream().collect(
            Collectors.collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
);

根据name,sex两个属性去重

List<Person> persons = new ArrayList();
//赋值初始化过程省略
List<Person> uniqueByNameAndSex = persons.stream().collect(
           Collectors. collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getName() + ";" + o.getSex()))), ArrayList::new)
);

国子监阿创
131 声望8 粉丝

任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序。—— Martin Fowler


引用和评论

0 条评论