zoukankan      html  css  js  c++  java
  • 对List<Map>里的map的某个属性重复的值进行处理的方法

    package test;

    import java.util.*;
    import java.util.stream.Collectors;

    public class Test5 {

    public static void main(String[] args) {

    List<LinkedHashMap<String, Object>> list = new ArrayList<>();
    list.add(new LinkedHashMap<String, Object>() {{
    put("id", "a");
    put("age", "13");
    put("sex", "男");
    }});
    list.add(new LinkedHashMap<String, Object>() {{
    put("id", "a");
    put("age", "14");
    put("sex", "男");
    }});
    list.add(new LinkedHashMap<String, Object>() {{
    put("id", "b");
    put("age", "14");
    put("sex", "男");
    }});
    list.add(new LinkedHashMap<String, Object>() {{
    put("id", "c");
    put("age", "14");
    put("sex", "男");
    }});
    list.add(new LinkedHashMap<String, Object>() {{
    put("id", "");
    put("age", "14");
    put("sex", "男");
    }});
    list.add(new LinkedHashMap<String, Object>() {{
    put("id", "c");
    put("age", "14");
    put("sex", "男");
    }});


    handleRepeatPrimaryKey(list, "id");
    List<LinkedHashMap<String, Object>> hasList = new ArrayList<>();
    hasList = list.stream().filter(x -> !x.get("id").toString().equals("")).collect(Collectors.toList());
    List<LinkedHashMap<String, Object>> notHasList = new ArrayList<>();
    notHasList = list.stream().filter(x -> x.get("id").toString().equals("")).collect(Collectors.toList());

    System.out.println(hasList);
    System.out.println(notHasList);


    }


    public static List<LinkedHashMap<String, Object>> handleRepeatPrimaryKey(List<LinkedHashMap<String, Object>> list, String id) {
    List<LinkedHashMap<String, Object>> itemList = new ArrayList<>();
    for (LinkedHashMap<String, Object> lhm : list) {
    if (itemList.size() == 0) {
    itemList.add(lhm);
    } else {
    ListIterator<LinkedHashMap<String, Object>> listIterator = itemList.listIterator();
    while (listIterator.hasNext()) {
    if (listIterator.next().get(id).toString().equals(lhm.get(id).toString())) {
    lhm.put(id, "");
    }
    }
    // 注意放在循环外面
    listIterator.add(lhm);
    }
    }
    return list;
    }
    }

    对重复主键进行处理,取第一个,剩余的主键都置空,嗯,能满足我的需求。不知道还有没有更好的方法?

  • 相关阅读:
    MySQL++:(转)mybatis 常用 jdbcType数据类型
    CF1556F Sports Betting (状压枚举子集DP)
    ICPC Greater New York Region 2020 F
    post方式实现导出/下载文件
    自定义一个v-if
    在vue项目中引用element-ui时 让el-input 获取焦点的方法
    element-select当下拉框数据过多使用懒加载
    vue强制刷新组件更新数据的方式
    .net core efcore dbfirst(sqlserver,mysql,oracle,postgresql)
    camunda安装配置mysql以及整合springboot
  • 原文地址:https://www.cnblogs.com/rongyao/p/11261601.html
Copyright © 2011-2022 走看看