先封装一个去重的方法

import java.util.Map;

import java.util.concurrent.ConcurrentHashMap;

import java.util.function.Function;

import java.util.function.Predicate;

/**

* 程熙cjp:https://blog.csdn.net/weixin_41133233

* 去重工具类

*

* @author chengxi

* @date 2020/3/17 17:15

*/

public class DeduplicationUtil {

/**

* 自定义函数去重

*

* @param keyExtractor

* @param

* @return

*/

public static Predicate distinctByKey(Function super T, ?> keyExtractor) {

Map seen = new ConcurrentHashMap<>();

return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;

}

}

案例:

// 注意需要关流之后,才会完成去重,如果继续操作流可能拿到未去重的数据

List logEchoVOList = traceLogEchoVOList.stream()

.filter(DeduplicationUtil.distinctByKey(d -> d.getVisitorNo()))

.collect(Collectors.toList());

stream流map 多个字段_stream流根据对象指定字段去重相关推荐

  1. java 对象验证非空_判断Bean对象指定字段非空

    判断Bean对象指定字段非空. 方案: 在bean对象上增加注解,指定字段非空,返回异常信息有明确字段描述,省去不必要的if.else判断. 新建注解类 /** * 参数校验,判断字段非空.返回异常文 ...

  2. 对象字段java_Java的类,对象以及字段和方法

    1 编码风格 代码风格一般规定:类名的首字母要大写,如果类由几个单词构成,那么吧它们并在一起(不要用下划线来分隔) 其中每个内部带刺的首字母都采用大写形式 例如 :  class AllColorOf ...

  3. oracle创建视图字段,oracle cast--创建视图指定字段类型

    今天创建一个视图 create view v_myview{ id, time } as select t.id as id, (case when to_date(t.time,'hh24:mi:s ...

  4. mongodb 导出指定数据库文件大小_大数据技术之将mongodb 数据指定字段导出,然后指定字段导入mysql 实例 及相关问题解决...

    本篇文章探讨了大数据技术之将mongodb 数据指定字段导出,然后指定字段导入mysql 实例 及相关问题解决,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. 需求:将mongo ...

  5. MySQL为表的指定字段添加数据

    只向表的部分字段添加数据,而其他字段的值为表定义时的默认值 INSERT INTO 表名(字段1,字段2,--) VALUES(值1,值2,--); 参数说明 字段1,字段2,--表示数据表中的字段名 ...

  6. mongodb 导入 mysql_将mongodb 数据指定字段导出,然后指定字段导入mysql 实例 及相关问题解决...

    需求:将mongodb 数据指定字段导出,然后再指定字段导入mysql  表中 直接上图吧, 最后 会将遇到几个问题及解决方案贴出,以便遇到类似问题可以迅速解决(期间所用命令具体用法不在本文详解之内) ...

  7. stream流倒序排序_java8 stream 操作map根据key或者value排序的实现|chu

    引言 最近小编自己一个人在负责一个项目的后台开发,其中有一部分是统计相关的功能,所以需要一些排序或者分组的操作,之前这种操作小编觉得还是比较麻烦的,虽热有一些现成的工具类,但是工具类的写法也是比较复杂 ...

  8. stream流_Stream流的这些操作,你得知道,对你工作有很大帮助

    Stream流 Stream(流)是一个来自数据源的元素队列并支持聚合操作: 元素是特定类型的对象,形成一个队列. Java中的Stream并不会存储元素,而 是按需计算. 数据源 流的来源. 可以是 ...

  9. java stream流_恕我直言你可能真的不会java第4篇:Stream管道流Map操作

    一.回顾Stream管道流map的基础用法 最简单的需求:将集合中的每一个字符串,全部转换成大写! List<String> alpha = Arrays.asList("Mon ...

最新文章

  1. import是引进外部函数吗_你必须要知道的Python中的main函数
  2. java.text.dateformat_使用java.text.SimpleDateFormat类进行文本日期和Date日期的转换
  3. .NET开发人员如何开始使用ML.NET
  4. 腾讯视频安卓版下载_腾讯课堂上传课程视频
  5. keil及iar调试解释
  6. scala if 语句缩写_Scala If-Else语句示例教程
  7. React源码剖析系列 - 玩转 React Transition
  8. python中的super用法详解_python中super的用法实例解析
  9. (实验)使用Protel 99se绘制2114存储器芯片(详细)
  10. 专利申请“技术交底书”的要素和撰写要求
  11. 微信小程序开发:绑定手机号获取验证码功能
  12. “钱妈妈”平台犯罪嫌疑人被抓捕 涉嫌非法吸收公众存款
  13. 收集的13个杀毒软件和安全防护软件(有图哦)
  14. 教你用arduino控制LCD1602液晶屏的底层程序实现(全网最笨的方法)
  15. Docker初识:安装centos(ssh远程登录)
  16. 获上市公司投资的睿图智能,如何打开“机器视觉”新空间?
  17. 怎样迅速搭建运营级直播服务器,用直播源码来完成属于你的专属直播服务
  18. MySQL数据库(练习一: 提示:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号) de)
  19. 用开源中国(oschina)Git管理代码(整合IntelliJ 13.1.5)
  20. 网易视频云:HBase GC的前生今世 – 演进篇

热门文章

  1. 摄像头ISP系统原理(下)
  2. CVPR2020论文解析:视频语义检索
  3. Mysql锁专题:InnoDB锁概述
  4. Python 创建类的成员并访问
  5. github上的图片当网络图片使用
  6. [USACO08NOV]lites
  7. int与string转换
  8. C#中 int.TryParse 的用法
  9. html5 FileReader初识
  10. 水题/poj 1852 Ants