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

Java将list数组中重复的对象进行去重

/*** 数组去重*/
public class ArrayDistinct {public static void main(String[] args) {ArrayList<Object> list = new ArrayList<>();JSONObject jsonObject1 = new JSONObject();jsonObject1.put("name","张三");jsonObject1.put("age",20);jsonObject1.put("gender","男");jsonObject1.put("money",200);JSONObject jsonObject2 = new JSONObject();jsonObject2.put("name","李四");jsonObject2.put("age",20);jsonObject2.put("gender","女");jsonObject2.put("money",100);list.add(jsonObject1);list.add(jsonObject1);list.add(jsonObject2);System.out.println(list);}
}

输出数组结果:

[{"gender": "男","money": 200,"name": "张三","age": 20},{"gender": "男","money": 200,"name": "张三","age": 20},{"gender": "女","money": 100,"name": "李四","age": 20}
]

预期结果:

[{"gender":"男","money":200,"name":"张三","age":20}, {"gender":"女","money":100,"name":"李四","age":20}]

实现方法:在输出前加上以下代码即可实现:

// 转为stream,利用distinct方法去重
list = list.stream().distinct().collect(Collectors.toList());

完整代码:

public class ArrayDistinct {public static void main(String[] args) {List<Object> list = new ArrayList<>();JSONObject jsonObject1 = new JSONObject();jsonObject1.put("name","张三");jsonObject1.put("age",20);jsonObject1.put("gender","男");jsonObject1.put("money",200);JSONObject jsonObject2 = new JSONObject();jsonObject2.put("name","李四");jsonObject2.put("age",20);jsonObject2.put("gender","女");jsonObject2.put("money",100);list.add(jsonObject1);list.add(jsonObject1);list.add(jsonObject2);System.out.println("去重前:"+list);// 转为stream,利用distinct方法去重list = list.stream().distinct().collect(Collectors.toList());System.out.println("去重后:"+list);}
}

输出:

相关文章:

  • java反射和注解
  • 基于Spring Boot与Vue的智能房产匹配平台+文档
  • Log4j日志框架讲解(全面,详细)
  • 上帝之眼(BEVSee):多相机间无需标定,将各自目标统一到同一坐标系下(代码开源,提供数据集)
  • C++编程(五)单例模式 友元
  • 如何寻找一个领域的顶级会议,并且判断这个会议的影响力?
  • SpringBoot学习04-[定制SpringMVC]
  • 在Qt中,直接include <moc_xxxxx.cpp> 为什么不会出现符号冲突的错误?
  • UTONMOS:探索未来区块链与元宇宙的游戏奇妙融合
  • linux的常用系统维护命令
  • Linux的一些杂项函数总结
  • rabbitmq消息队列提出的问题(个人想法)
  • 有哪些好的 Stable Diffusion 提示词(Prompt)可以参考?
  • hive零基础入门
  • QT5:在窗口右上角显示图标
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • co.js - 让异步代码同步化
  • crontab执行失败的多种原因
  • exif信息对照
  • java8 Stream Pipelines 浅析
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • LeetCode18.四数之和 JavaScript
  • LeetCode29.两数相除 JavaScript
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • python docx文档转html页面
  • Python socket服务器端、客户端传送信息
  • quasar-framework cnodejs社区
  • React16时代,该用什么姿势写 React ?
  • Redis字符串类型内部编码剖析
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • uni-app项目数字滚动
  • 从重复到重用
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 京东美团研发面经
  • 经典排序算法及其 Java 实现
  • 力扣(LeetCode)56
  • 浏览器缓存机制分析
  • 前端工程化(Gulp、Webpack)-webpack
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  •  一套莫尔斯电报听写、翻译系统
  • 从如何停掉 Promise 链说起
  • 整理一些计算机基础知识!
  • ​如何在iOS手机上查看应用日志
  • #pragam once 和 #ifndef 预编译头
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (09)Hive——CTE 公共表达式
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C++20) consteval立即函数
  • (PADS学习)第二章:原理图绘制 第一部分
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142