userList = userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User :: getUserid))), ArrayList::new));

 1、TreeSet是基于TreeMap实现的一个有序的,元素不可重复的集合;

有序的实现方式有两种:

(1)对于被排序的实体类实现java.lang.comparable接口重写compareTo方法

(2)提供一个比较器Comparator给TreeSet (可通过定义一个比较器类 或者 匿名内部类  或者jdk8的Comparator.comparing)

 

2、TreeSet对于重复元素的保留方式是留下先add的,抛弃后add的

 

3、Collectors.collectingAndThen方法是先进行collecting操作,最后再执行then操作

 

上面的根据元素属性去重方法是:

1.将list存为TreeSet,并使用Comparator.comparing指定比较的元素为某个属性。

2.将不重复的TreeSet集合转回List

相关文章:

  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2022-01-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
猜你喜欢
  • 2021-07-12
  • 2021-12-11
  • 2021-06-27
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-07-12
相关资源
相似解决方案