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

输出:

相关推荐
nenchoumi31196 分钟前
UE5 学习系列(九)光照系统介绍
java·学习·ue5
张乔2417 分钟前
spring boot项目整合mybatis实现多数据源的配置
java·spring boot·多数据源
GzlAndy22 分钟前
Tomcat调优
java·tomcat
美好的事情能不能发生在我身上24 分钟前
苍穹外卖Day11代码解析以及深入思考
java·spring boot·后端·spring·架构
辉辉健身中30 分钟前
Maven入门(够用)
java·maven
星火飞码iFlyCode1 小时前
【无标题】
java·前端·人工智能·算法
不良手残1 小时前
Redisson + Lettuce 在 Spring Boot 中的最佳实践方案
java·spring boot·redis·后端
YuTaoShao1 小时前
Java八股文——Spring「Spring 篇」
java·数据库·spring
阿维的博客日记1 小时前
说一下Java里面线程池的拒绝策略
java·线程池·拒绝策略
快乐肚皮2 小时前
快速排序:分治思想的经典实践
java·算法·排序算法