List去重

1:去除重复数据

List<String> villageIds = villageIdAll.stream().distinct().collect(Collectors.toList());

List<Animal> animals = new ArrayList<>(
Arrays.asList(
new Animal("wangwang", 3),
new Animal("wangwang", 3),
new Animal("guagua", 2)
)
);
System.out.println(animals);
System.out.println(animals.stream().distinct().collect(Collectors.toList()));

2:根据指定字段去重

// 根据name去重
List<Person> unique = persons.stream().collect(
            Collectors.collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
);

// 根据name,sex两个属性去重
List<Person> unique = persons.stream().collect(
           Collectors. collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getName() + ";" + o.getSex()))), ArrayList::new)
);



 

posted @ 2022-01-24 10:59  老屋上的仙人掌  阅读(46)  评论(0)    收藏  举报