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]





  • 相关阅读:
    BZOJ3899 仙人掌树的同构(圆方树+哈希)
    BZOJ3590 SNOI2013Quare(状压dp)
    BZOJ2178 圆的面积并(simpson积分)
    BZOJ3724 PA2014Final Krolestwo(欧拉回路+构造)
    BZOJ3589 动态树(树链剖分+容斥原理)
    BZOJ3453 XLkxc(拉格朗日插值)
    BZOJ4650 NOI2016优秀的拆分(后缀数组)
    Luogu5058 ZJOI2004嗅探器(割点)
    shutil模块---文件,文件夹复制、删除、压缩等处理
    面向过程---通过查找字符串,找到相应的文件路径
  • 原文地址:https://www.cnblogs.com/dzcWeb/p/14889491.html
Copyright © 2011-2022 走看看