Java8 stream 对List<Map<String,Object>> 去重、过滤、排序等操作

2023-11-03

1、去重

List<Map<String,Object>> list1 = new ArrayList<>();
        
       Map<String,Object> map = new HashMap();
       Map<String,Object> map2 = new HashMap();

       map.put("key","1");
       map.put("value","a");
       map2.put("key","2");
       map2.put("value","a");

       list1.add(map);
       list1.add(map2);
       list1.forEach(System.out::println);
       List<Map<String, Object>> list2 = list1.stream().collect(
               Collectors.collectingAndThen(
                       Collectors.toCollection(
                               () ->new TreeSet<>(Comparator.comparing(m->m.get("value").toString()))
                       ),ArrayList::new
               )
       );
       System.out.println("--------");
       list2.forEach(System.out::println);
 

2、过滤

List<Map<String, Object>> shopDpjbxxMx = shopDpjbxx.stream().filter(e -> e.get("shop_satatus") !=null && e.get("shop_satatus").equals("开店")).collect(Collectors.toList());

3、按过滤并时间排序

List<Map<String, Object>> shopQylsxssjMx = shopQylsxssj.stream().filter(e -> e.get("company_sales_amount") !=null && Integer.parseInt(e.get("company_sales_amount").toString())>0).sorted((o1, o2) -> {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    try {
        Date dt1 = format.parse(o1.get("data_month").toString());
        Date dt2 = format.parse(o2.get("data_month").toString());
        // 默认降序, 升序的话 把 dt1 和 dt2 调换位置
        return Long.compare(dt2.getTime(), dt1.getTime());
    } catch (Exception e) {
        e.printStackTrace();
    }
    return 0;
}).collect(Collectors.toList());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java8 stream 对List<Map<String,Object>> 去重、过滤、排序等操作 的相关文章

  • 使用 LINQ 洗牌

    我正在尝试编写一个简单的纸牌游戏 为了想出一个好的洗牌算法 我遇到了 Jeff Atwood 的post http www codinghorror com blog 2007 12 shuffling html关于恐怖编码 但是 当我在调
  • 如何在 IDEA Intellij 上使用 Spring-boot 自动重新加载

    我写了一个基于Spring boot tomcat freemarker的项目 我运行成功 但是每当我修改一些模板和java类时 我必须重新启动服务器或使用Intellij上的 重新加载更改的类 菜单才能使更改生效 浪费很多时间 然后我尝试
  • 策略模式还是命令模式?

    假设我有一个金融交易列表 我需要针对这些交易执行一系列验证规则 一个例子是我有一笔购买产品的交易 但是首先我需要验证交易中的帐户是否有足够的可用资金 产品没有售完等 由于这些规则 交易将是标记为拒绝 并应指定错误代码 当然 我正在考虑用一个
  • 从文本文件中读取阿拉伯字符

    我完成了一个项目 在该项目中我读取了用记事本编写的文本文件 我的文本文件中的字符是阿拉伯语 文件编码类型是UTF 8 当在 Netbeans 7 0 1 中启动我的项目时 一切似乎都正常 但是当我将项目构建为 jar 文件时 字符以这种方式
  • 在 Java 中使用 Batik 检查和删除 SVG 中的属性

    这个问题基本上说明了一切 如何检查 SVG 是否具有 viewBox 属性 我正在使用蜡染库 我需要这个 因为我需要 至少 通知用户有一个 viewBox 属性 我可以删除它吗 使用 org w3c dom 类 您可以按照以下方式做一些事情
  • 如何在url请求中发送数组

    我的要求如下 我想给出演员姓名 开始日期 结束日期并获取他在该时期出演的所有电影 因此 我的服务请求是这样的 http localhost 8080 MovieDB GetJson name Actor startDate 20120101
  • 如何作为应用程序发布到页面?

    所以 我有一个应用程序 Facebook 应用程序实体 并且我有一个页面 我想使用应用程序通过java代码 通过restfb或任何其他建议 发布到页面 看起来我错过了页面授予应用程序发布权限的阶段 不知道该怎么做 谢谢你们 乌里 您只能 作
  • 运行 java -jar 时出现 java.lang.ClassNotFoundException

    我正在使用 ant 来构建我的build xml文件 它编译正常 但随后得到运行时java lang NoClassDefFoundError通过 运行生成的 jar 时java jar my jar jar 似乎这个问题出现了很多 但没有
  • 在哪里保存选项值、重要文件的路径等[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个程序 需要设置一些选项值以及图像文件的一些路径 SQLite 数据库的路径 有关各种按钮上文本的一些信息 有关要使用哪个数据库的信
  • 我需要在 JFileChooser(打开模式)中显示不带扩展名的文件名。如何?

    我在打开模式下使用 JFileChooser 我需要显示不带扩展名的 文件名 字段 如何 我知道文件视图 它删除文件系统文件中的扩展名 但将所选文件中的扩展名保留在 文件名 字段中解释 http saveimg ru show image
  • JavaFX使节点覆盖父节点边框颜色

    我有一个如下所示的节点 仅使用 css 我希望标签覆盖其父边框颜色 因此标签下方的边框颜色部分变得不可见 我用来制作这个边框的CSS代码 fx border color black fx border width 3 fx border r
  • 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest 标头?

    我正在尝试将授权标头添加到我的请求中 作为我们切换环境时的临时解决方法 我试图在扩展 HandlerInterceptorAdapter 的拦截器中处理它 我使用 MutableHttpServletRequest 类制作here http
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 在grails控制器中识别ajax请求或浏览器请求

    我正在开发一个使用大量ajax的grails应用程序 如果请求是ajax调用 那么它应该给出响应 这部分正在工作 但是如果我在浏览器中输入URL 它应该带我到主页 索引页面而不是请求的页面 下面是ajax调用的示例gsp代码
  • 在 java 中运行外部应用程序但不要等待它完成

    我正在用java编写一个应用程序 允许我运行其他应用程序 为此 我使用了 Process 类对象 但当我这样做时 应用程序会等待进程结束 然后再退出 有没有办法在 Java 中运行外部应用程序 但不等待它完成 public static v
  • 嵌套字段的 Comparator.comparing(...)

    假设我有一个这样的域模型 class Lecture Course course getters class Course Teacher teacher int studentSize getters class Teacher int
  • 为什么无法从 WEB-INF 文件夹内加载 POSModel 文件?

    我在我的 Web 项目中使用 Spring MVC 我将模型文件放在 WEB INF 目录中 String taggerModelPath WEB INF lib en pos maxent bin String chunkerModelP
  • 如何使用Gson仅从Json反序列化某些特定字段?

    我有以下 JSON 字符串 channel bvmt initValues data value instrumentIds TN0007250012 TN0007500010 instruments mnemonic ADWYA marc
  • 如何制作一个makefile只用于编译一些java文件?

    我有三个java文件 名为A java B java C java A将创建对象B B将创建对象C 但我以前从未构建过makefile 有谁可以帮我构建一个 makefile 来编译这三个 java 文件吗 我应该使用什么工具来制作 mak
  • mybatis:使用带有 XML 配置的映射器接口作为全局参数

    我喜欢使用 XML 表示法来指定全局参数 例如连接字符串 我也喜欢 Mapper 注释 当我尝试将两者结合起来时 我得到这个例外 https stackoverflow com questions 4263832 type interfac

随机推荐

  • 多益网络java面试,java全栈工程师面试题

    前言 继续总结吧 没有面试就继续夯实自己的基础 前阵子的在面试过程中遇到的各种问题陆陆续续都会总结出来分享给大家 这次要说的也是面试中被问到的一个高频的问题 我当时其实没答好 因为很早之前是看过springboot启动过程的源码 但是时间隔
  • 以太坊智能合约之如何执行智能合约?

    区块链技术在顶级技术中占据主导地位的主要原因在于其去中心化 虽然区块链的主要目的是在没有中心的情况下维护交易记录 但为了实现自动化 智能合约被引入 那么在写完智能合约之后呢 在本文的这个以太坊智能合约教程中 我们将了解如何使用Truffle
  • 管理信息系统复习总结(保姆级)

    管理信息系统 题型 填空 单选 双选 名词解释 综合 简答 第一章 当今全球商业中的信息系统 1 管理信息系统的新变化 信息技术创新 新的业务模式 电子商务扩张 管理变革 公司和组织变革 2 信息系统如何改变企业 新兴移动数字平台 利用信息
  • Cas服务端5.3.2之开启审计功能(MySQL8)

    1 在cas overlay template的pom里面增加对cas server support audit jdbc的依赖
  • Redis缓存击穿

    什么是缓存击穿 在谈论缓存击穿之前 我们先来回忆下从缓存中加载数据的逻辑 如下图所示 因此 如果黑客每次故意查询一个在缓存内必然不存在的数据 导致每次请求都要去存储层去查询 这样缓存就失去了意义 如果在大流量下数据库可能挂掉 这就是缓存击穿
  • Unity打包浏览器端网页HTML(WebGL)以及部署到Tomcat浏览器访问报错问题解决

    Unity默认打包是PC端客户端程序 想要打包浏览器可以访问的WebGL网页 需要修改一些配置 我使用的Unity版本是2021 3 24f1 1 修改Build Settings 1 1 点击File Build Settings 1 2
  • C#中实现FFT的两种方法

    最近工作中有个需求 在C 环境中实现FFT算法 在网上找了些资料 最后实现了下面的两种方式 实际应用任选其一就好 第一种方法 不依赖C 中的Complex 需要实现计算过程的每一步详细步骤 输入序列长度为2的N次幂 使用前需先定义序列长度
  • 世界杯数据可视化分析

    目录 1 数据来源 2 字段解释 世界杯成绩信息表 WorldCupsSummary 世界杯比赛比分汇总表 WorldCupMatches csv 世界杯球员信息表 WorldCupPlayers csv 3 数据分析及可视化 世界杯已经告
  • 【教程】华南理工大学校园网登录抓包和协议模拟

    每次手动登录特别麻烦 而且时不时断一下 因此搞个脚本让它定时监测 断开重连比较方便 这里不讲这个脚本怎么写 只记录一下登录时的抓包内容 蒜了 直接上解析吧 也不复杂 相信大家一目了然 目录 抓包分析 postman测试请求 python模拟
  • 联想服务器如何恢复预装系统,Thinkcentre E73 E63z等预装Win7系统如何恢复出厂系统...

    故障现象 Thinkcentre系列机型 如E73 E63z等机型 随机预装win7系统如何恢复出厂系统的操作方法 解决方案 适应机型 E73 E73s E63z E93z等thinkcentre机型 适应操作系统 随机预装的Windows
  • spring boot判断需要跳转的页面文件是否存在

    在Spring Boot项目中 你可以使用ResourceLoader来判断要跳转的页面HTML路径文件是否存在 首先 你需要注入ResourceLoader到你的类中 可以使用 Autowired注解进行依赖注入 如下所示 Autowir
  • windows下搭载apache+svn服务器

    原文地址 http www cnblogs com ricksun articles 1564905 html 花了72小时 终于把 Subversion 初步掌握了 从一个连 什么是版本控制 都不知道的门外汉 到配置出精确至每目录访问的入
  • 关于AI如何实现短视频制作的方案仅供参考

    随着短视频平台的红火 短视频制作逐渐成为了大众娱乐的主流之一 同时也孕育出了巨大的商业价值 但是 短视频制作的过程需要消耗大量人力 物力 时间 并且需要调整画面的色彩 亮度 饱和度等因素 让整个过程显得较为复杂 因此 采用 AI 技术来实现
  • php-event 文档,@event

    event 描述 描述一个事件 语法 event event 概述 描述一个事件 event标签允许您描述一个可触发的事件 一个典型的事件是由对象定义的一组属性来表示 标签来定义事件的具体类型 您可以使用 fires标记 以表明这个种方法可
  • mysql isamchk_MySQL之myisamchk

    Description check and repair of MyISAM tables Used without options all tables on the command will be checked for errors
  • Microsemi 2017 Q2 招聘

    有意者发送简历到 dong zhang microsemi com Position Staff ASIC Design Engineer Business Unit ESC PerformanceStorage Location Shan
  • ajax循环输出,Ajax轮询 select循环输出

    弹出层 del color red addname color 337ab7 款项名目操作 vo name 删除 添加 addname on click function layer prompt title 添加款项名目 formType
  • 半导体学习——三极管正确理解

    学习三极管时候的问题 1 能量不是守恒的吗 为什么三极管会有放大电路的效果 2 既然是PNP型或者是NPN型 那么总有一个PN结是反向偏置的 那么电流是如何通过这个反向偏置的PN结到达集电极的呢 1 三极管的 放大 并不是把小电流变成大电流
  • paramiko.ssh_exception.SSHException: EOF during negotiation

    查找sftp server的位置 sudo find name sftp server usr lib openssh sftp server 然后查看ssh的配置文件 sudo vim etc ssh sshd config 找到配置文件
  • Java8 stream 对List<Map<String,Object>> 去重、过滤、排序等操作

    1 去重 List