当前位置: 首页 > news >正文

stream对list数据进行多字段去重

方法一:

//根据sj和name去重
List<NursingHandover> testList = list.stream().collect(
                Collectors.collectingAndThen(Collectors.toCollection(
                        () -> new TreeSet<>(Comparator.comparing(
                                o -> o.getj() + ";" + o.getName() + ";")
                        )), ArrayList::new));

方法二:

// 通过Map生成键值对,Key去重
Map<Long, String> newMap = list.stream().collect(Collectors
        .toMap(NursingHandover::getSj, NursingHandover::getName));

方式三:

// 通过多个字段分组,并生成Map:key(字段组合),value(对象列表)
Map<Object, List<NursingHandover>> costLmmMap = list.parallelStream()
        .collect(Collectors.groupingBy(item -> (item.getSj() +
        "_" + item.getName()), Collectors.toList()));
http://www.dtcms.com/a/1812.html

相关文章:

  • 问答区混赏金的集合贴
  • 华为杯数学建模比赛经验分享
  • $nextTick解决echarts宽度固定为100%的问题
  • Armv9 Cortex-A720的L2 memory system 和 L2 Cache
  • Leetcode 297. 二叉树的序列化与反序列化
  • 【LeetCode】滑动窗口妙解无重复字符的最长子串
  • 华为智能高校出口安全解决方案(2)
  • Ubuntu Qt 5.15.2 支持 aarch64
  • 【李沐深度学习笔记】损失函数
  • C++与数据结构面经(重中之重)
  • 83、SpringBoot --- 下载和安装 MSYS2、 Redis
  • 【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDxLDxR)?
  • 数据响应式原理
  • Java on Azure Tooling 8月更新|以应用程序为中心的视图支持及 Azure 应用服务部署状态改进
  • Redis与Mybatis
  • 批量删除wordpress文章修订版本/自动草稿残留数据(3种方法)及四种方法禁用WordPress文章历史修订/自动保存/自动草稿功能
  • [JAVAee]MyBatis
  • MySQL数据类型与表单创建
  • HTTP协议
  • Docker(三)、Dockerfile探究
  • 【C++】单例模式
  • 程序员的快乐如此简单
  • Hadoop分布式文件系统
  • celery分布式异步任务队列-4.4.7
  • SpringMVC+统一表现层返回值+异常处理器
  • Golang基础之关键字
  • Java之多线程的生产者消费者问题的详细解析
  • 第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 C: 班级活动
  • 项目进展(四)-双电机均可驱动,配置模拟SPI,调平仪功能初步实现!
  • kafka消息队列简单使用