zoukankan      html  css  js  c++  java
  • jdk8根据某一属性去重方法 Collectors.collectingAndThen

    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

  • 相关阅读:
    yii框架中获取添加数据后的id值
    linux环境安装filephp扩展
    yii框架中使用gii的用法
    lanmp环境中创建个软连接
    lanmp环境中php版本的升级为7.1
    内置函数
    递归函数
    装饰器函数精讲
    函数对象
    初识函数集锦
  • 原文地址:https://www.cnblogs.com/chenhao0302/p/15774378.html
Copyright © 2011-2022 走看看