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);
    }
}

输出:

相关推荐
胚芽鞘68118 分钟前
关于java项目中maven的理解
java·数据库·maven
岁忧1 小时前
(LeetCode 面试经典 150 题 ) 11. 盛最多水的容器 (贪心+双指针)
java·c++·算法·leetcode·面试·go
CJi0NG1 小时前
【自用】JavaSE--算法、正则表达式、异常
java
Hellyc2 小时前
用户查询优惠券之缓存击穿
java·redis·缓存
今天又在摸鱼2 小时前
Maven
java·maven
老马啸西风2 小时前
maven 发布到中央仓库常用脚本-02
java·maven
代码的余温2 小时前
MyBatis集成Logback日志全攻略
java·tomcat·mybatis·logback
一只叫煤球的猫4 小时前
【🤣离谱整活】我写了一篇程序员掉进 Java 异世界的短篇小说
java·后端·程序员
斐波娜娜4 小时前
Maven详解
java·开发语言·maven
Bug退退退1234 小时前
RabbitMQ 高级特性之事务
java·分布式·spring·rabbitmq