• 一个list<Map>里map其中的一个字段的值相同,如何判断这个字段相同,就把这个map的其他字段存入另一个map中


    引用:https://www.cnblogs.com/dupengfei-summer/p/9283156.html

     1 package util;
     2 
     3 import java.util.ArrayList;
     4 import java.util.HashMap;
     5 import java.util.List;
     6 import java.util.Map;
     7 
     8 public class ListMapUtil {
     9     public static void main(String[] args) {
    10         mapData();
    11     }
    12 
    13     public static void mapData() {
    14         Map map1 = new HashMap<>();
    15         Map map2 = new HashMap<>();
    16         Map map3 = new HashMap<>();
    17         Map map4 = new HashMap<>();
    18         Map map5 = new HashMap<>();
    19         Map map6 = new HashMap<>();
    20         Map map7 = new HashMap<>();
    21 
    22         map1.put("maId", 17);
    23         map1.put("loginNum", 396);
    24 
    25         map2.put("maId", 17);
    26         map2.put("shareGoodsOrderNum", 396);
    27 
    28         map3.put("maId", 39);
    29         map3.put("loginNum", 3);
    30 
    31         map4.put("maId", 239);
    32         map4.put("loginNum", 1323);
    33 
    34         map5.put("maId", 17);
    35         map5.put("orderNum", 1);
    36 
    37         map6.put("maId", 39);
    38         map6.put("loginNum", 3);
    39 
    40         map7.put("maId", 17);
    41         map7.put("addFamerInfoNum", 24);
    42 
    43         List<Map> list = new ArrayList();
    44         list.add(map1);
    45         list.add(map2);
    46         list.add(map3);
    47         list.add(map4);
    48         list.add(map5);
    49         list.add(map6);
    50         list.add(map7);
    51         System.out.println("原本的list" + list);
    52 
    53         //合并相同maid的map成为一个map
    54         //获取一个map,判断另一个map中的key有没有相同的,有就合并,合并完后
    55 
    56         for (int i = 0; i < list.size(); i++) {
    57             Map map = list.get(i);
    58             // 从当前项的下一项开始检查
    59             for (int j = i + 1; j < list.size(); j++) {
    60                 Map<String, Object> childMap = list.get(j);
    61                 // ID 相等
    62                 if (null != map.get("maId") & null != childMap.get("maId")) {
    63                     if (map.get("maId").equals(childMap.get("maId"))) {
    64                         // 合并,此处需要先 remove
    65                         list.remove(childMap);
    66                         map.putAll(childMap);
    67                     }
    68                 }
    69 
    70             }
    71         }
    72         System.out.println("合并后的list:" + list);
    73 
    74 
    75     }
    76    
    77 }

    输出值:

    1 原本的list[{maId=17, loginNum=396}, {shareGoodsOrderNum=396, maId=17}, {maId=39, loginNum=3}, {maId=239, loginNum=1323}, {orderNum=1, maId=17}, {maId=39, loginNum=3}, {maId=17, addFamerInfoNum=24}]
    2 合并后的list:[{shareGoodsOrderNum=396, orderNum=1, maId=17, loginNum=396, addFamerInfoNum=24}, {maId=239, loginNum=1323}, {maId=39, loginNum=3}]
  • 相关阅读:
    【URL重写】IIS7配置URL重写
    【IIS7.5】Asp文件上传限制,加载页面大小限制
    msxml3.dll 错误 '800c0005' 系统错误: -2146697211。
    【转】修改3389远程端口的批处理文件.bat
    第一篇:无角牛MVC通用后台数据库设计
    无角牛MVC通用后台
    个人收集资料整理-WebForm
    个人收集资料整理-WinForm
    win7系统中桌面图标显示不正常问题
    ASP.NET MVC 第六回 过滤器Filter
  • 原文地址:https://www.cnblogs.com/19322li/p/12845390.html
Copyright © 2020-2023  润新知