zoukankan      html  css  js  c++  java
  • list<map>类型数据去重

    未去重前的数据类型chooseList:

    [
        {
            "englishName":"lyss",
            "assetTypeName":"角色",
            "name":"lyss",
            "isSelect":0,
            "id":65195
        },
        {
            "englishName":"mkkm",
            "assetTypeName":"角色",
            "name":"mkkm",
            "isSelect":0,
            "id":65194
        },
        {
            "englishName":"asset-01",
            "assetTypeName":"角色",
            "name":"asset-01",
            "isSelect":0,
            "id":34964
        },
        {
            "englishName":"lyss",
            "assetTypeName":"角色",
            "name":"lyss",
            "isSelect":0,
            "id":65195
        },
        {
            "englishName":"mkkm",
            "assetTypeName":"角色",
            "name":"mkkm",
            "isSelect":1,
            "id":65194
        },
        {
            "englishName":"asset-01",
            "assetTypeName":"角色",
            "name":"asset-01",
            "isSelect":0,
            "id":34964
        },
        {
            "englishName":"lyss",
            "assetTypeName":"角色",
            "name":"lyss",
            "isSelect":1,
            "id":65195
        },
        {
            "englishName":"mkkm",
            "assetTypeName":"角色",
            "name":"mkkm",
            "isSelect":0,
            "id":65194
        },
        {
            "englishName":"asset-01",
            "assetTypeName":"角色",
            "name":"asset-01",
            "isSelect":1,
            "id":34964
        },
        {
            "englishName":"lyss",
            "assetTypeName":"角色",
            "name":"lyss",
            "isSelect":1,
            "id":65195
        },
        {
            "englishName":"mkkm",
            "assetTypeName":"角色",
            "name":"mkkm",
            "isSelect":1,
            "id":65194
        },
        {
            "englishName":"asset-01",
            "assetTypeName":"角色",
            "name":"asset-01",
            "isSelect":1,
            "id":34964
        }
    ]

    想得到的数据类型chooseList3

    [
        {
            "englishName":"lyss",
            "assetTypeName":"角色",
            "name":"lyss",
            "isSelect":1,
            "id":65195
        },
        {
            "englishName":"mkkm",
            "assetTypeName":"角色",
            "name":"mkkm",
            "isSelect":1,
            "id":65194
        },
        {
            "englishName":"asset-01",
            "assetTypeName":"角色",
            "name":"asset-01",
            "isSelect":1,
            "id":34964
        }
    ]

    实现步骤:

    1.获取唯一的name对应的json:

    通过:

    for  ( int  i  =   0 ; i  <  chooseList.size()  -   1 ; i ++ )  {
    for ( int j = chooseList.size() - 1 ; j > i; j -- ) {
    if (chooseList.get(j).get("name").equals(chooseList.get(i).get("name"))) {
    chooseList.remove(j);

    }
    }
    }
    得到:
    [
        {
            "englishName":"lyss",
            "assetTypeName":"角色",
            "name":"lyss",
            "isSelect":0,
            "id":65195
        },
        {
            "englishName":"mkkm",
            "assetTypeName":"角色",
            "name":"mkkm",
            "isSelect":0,
            "id":65194
        },
        {
            "englishName":"asset-01",
            "assetTypeName":"角色",
            "name":"asset-01",
            "isSelect":0,
            "id":34964
        }
    ]

    2.拿获取的唯一的name对应的json和最开始的chooseList进行对比:
    List<JSONObject> chooseList3= new ArrayList<>();
    for(int i=0;i<chooseList.size();i++){
    JSONObject map= new JSONObject();
    String name = chooseList.get(i).get("name").toString();
    map.put("id", chooseList.get(i).get("id"));
    map.put("name", chooseList.get(i).get("name"));
    map.put("englishName", chooseList.get(i).get("englishName"));
    map.put("assetTypeName", chooseList.get(i).get("assetTypeName"));
    chooseList2.stream().filter(x-> x.get("name").toString().equals(name)).collect(Collectors.toList()).stream().map(isSelect->isSelect.get("isSelect"));
    System.out.println("=====3333=====:"+chooseList2.stream().filter(x-> x.get("name").toString().equals(name)).collect(Collectors.toList()));
    System.out.println("======22====:"+chooseList2.stream().filter(x-> x.get("name").toString().equals(name)).collect(Collectors.toList()).stream().map(isSelect->isSelect.get("isSelect")).collect(Collectors.toList()));
    if(chooseList2.stream().filter(x-> x.get("name").toString().equals(name)).collect(Collectors.toList()).stream().map(isSelect->isSelect.get("isSelect")).collect(Collectors.toList()).contains(1)){
    map.put("isSelect",1);
    } else{
    map.put("isSelect",0);
    }
    chooseList3.add(map);

    }





    控制台输出:

    ============未去掉重复数据chooseList111111111:[{"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":0,"id":65195}, {"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":0,"id":65194}, {"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":0,"id":34964}, {"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":0,"id":65195}, {"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":1,"id":65194}, {"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":0,"id":34964}, {"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":1,"id":65195}, {"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":0,"id":65194}, {"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":1,"id":34964}, {"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":1,"id":65195}, {"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":1,"id":65194}, {"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":1,"id":34964}]
    =====3333=====:[{"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":0,"id":65195}, {"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":0,"id":65195}, {"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":1,"id":65195}, {"englishName":"lyss","assetTypeName":"角色","name":"lyss","isSelect":1,"id":65195}]
    ======22====:[0, 0, 1, 1]
    =====3333=====:[{"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":0,"id":65194}, {"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":1,"id":65194}, {"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":0,"id":65194}, {"englishName":"mkkm","assetTypeName":"角色","name":"mkkm","isSelect":1,"id":65194}]
    ======22====:[0, 1, 0, 1]
    =====3333=====:[{"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":0,"id":34964}, {"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":0,"id":34964}, {"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":1,"id":34964}, {"englishName":"asset-01","assetTypeName":"角色","name":"asset-01","isSelect":1,"id":34964}]
    ======22====:[0, 0, 1, 1]





  • 相关阅读:
    javacv 通过rtsp 获取视频流 设置帧率
    Firefly-RK3399 上编译安装 OpenCV 3
    萤火虫系统(firefly) RK3399 python3 安装 tensorflow
    Linux环境创建交换分区
    python模块发布
    Docker学习
    好书收集
    python 内存管理和垃圾回收机制
    redis加分布式锁
    邀请关系设计
  • 原文地址:https://www.cnblogs.com/dzcWeb/p/14889491.html
Copyright © 2011-2022 走看看