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

java 复制代码
/**
 * 数组去重
 */
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);
    }
}

输出数组结果:

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

预期结果:

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

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

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

完整代码:

java 复制代码
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);
    }
}

输出:

相关推荐
diudiu962824 分钟前
Maven配置阿里云镜像
java·spring·阿里云·servlet·eclipse·tomcat·maven
魔芋红茶36 分钟前
Netty 简易指南
java·开发语言·netty
大学生资源网1 小时前
基于springboot的万亩助农网站的设计与实现源代码(源码+文档)
java·spring boot·后端·mysql·毕业设计·源码
小严家1 小时前
Java基础教程大全完整学习路径
java·开发语言·学习
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于Java的电影推荐系统为例,包含答辩的问题和答案
java·开发语言
sheji34161 小时前
【开题答辩全过程】以 基于SSM的校园新冠疫苗接种信息管理系统为例,包含答辩的问题和答案
java·开发语言
菜鸟233号1 小时前
力扣78 子集 java实现
java·数据结构·算法·leetcode
dddaidai1231 小时前
深入JVM(四):垃圾收集器
java·开发语言·jvm
BBB努力学习程序设计1 小时前
Java方法(函数)完全指南:初学者的第一个"工具箱"
java
爬山算法2 小时前
Netty(19)Netty的性能优化手段有哪些?
java·后端