List Map String, String 操作(遍历,比较)

1.List<Map<String,String>>的遍历:


Map<String,String> map = new HashMap<String, String>();  

    map.put("1", "fds");  

    map.put("2", "valu");  

    List<Map<String, String>> list = new ArrayList<Map<String, String>>();  

    list.add(map);  

    for (Map<String, String> m : list){  

      for (String k : m.keySet()){  

        System.out.println(k + " : " + m.get(k));  

      }  
    }

2.两个List<Map<String,String>>相互比较,有相同数据时某些字段相加减

inOrderList与outOrderList放自己的所比较的数据,name,number,id为map的key值


for (int i = 0; i < inOrderList.size(); i++) {//循环获取入库数据

        String number1 = String.valueOf(inOrderList.get(i).get("number"));

            String depotName1 = inOrderList.get(i).get("name");

            String proId1 = inOrderList.get(i).get("id");

            for (int j = 0; j < outOrderList.size(); j++) {//循环获取出库数据

                 String number2 = String.valueOf(outOrderList.get(j).get("number"));

                 String depotName2 = outOrderList.get(j).get("name");

                 String proId2 = outOrderList.get(j).get("id");

                if (depotName1.equals(depotName2) && proId1.equals(proId2)) {

                    Integer sum =Integer.parseInt(number1) - Integer.parseInt(number2);//判断是否为同一条数据,同条数据数量相减

                    inOrderList.get(i).put("number", sum + "");

                }

            }

        }

3.单个List<Map<String,String>>相互比较,相同数据相加(转)

List<Map<String, String>> l = new ArrayList<Map<String,String>>();

        Map<String, String> m1 = new HashMap<String, String>();

          

        m1.put("count", "1");

        m1.put("name", "帮宝适纸尿裤L164 超薄干爽夏季透气专用婴儿尿不湿");

        m1.put("province", "江苏省");

        m1.put("date", "2014-09-23 10:13:39");

        m1.put("channel", "东环大润发");

        m1.put("city", "苏州市");

        l.add(m1);

          

        Map<String, String> m2 = new HashMap<String, String>();

        m2.put("count", "1");

        m2.put("name", "帮宝适纸尿裤L164 超薄干爽夏季透气专用婴儿尿不湿");

        m2.put("province", "江苏省");

        m2.put("date", "2014-09-23 10:13:39");

        m2.put("channel", "东环大润发");

        m2.put("city", "泰州市");

        l.add(m2);

          

        Map<String, String> m3 = new HashMap<String, String>();

        m3.put("count", "1");

        m3.put("name", "帮宝适纸尿裤L164 超薄干爽夏季透气专用婴儿尿不湿");

        m3.put("province", "江苏省");

        m3.put("date", "2014-09-23 10:13:39");

        m3.put("channel", "东环大润发");

        m3.put("city", "泰州市");

        l.add(m3);

          

        List<Map<String, String>> countList = new ArrayList<Map<String,String>>();//用于存放最后的结果

        for (int i = 0; i < l.size(); i++) {

            String count = l.get(i).get("count");

            String name = l.get(i).get("name");

            String province = l.get(i).get("province");

            String date = l.get(i).get("date");

            String channel = l.get(i).get("channel");

            String city = l.get(i).get("city");

              

            int flag = 0;//0为新增数据,1为增加count

            for (int j = 0; j < countList.size(); j++) {

                String count_ = countList.get(j).get("count");

                String name_ = countList.get(j).get("name");

                String province_ = countList.get(j).get("province");

                String date_ = countList.get(j).get("date");

                String channel_ = l.get(j).get("channel");

                String city_ = countList.get(j).get("city");

                  

                if (count.equals(count_)&&

                        name.equals(name_)&&

                        province.equals(province_)&&

                        date.equals(date_)&&

                        channel.equals(channel_)&&

                        city.equals(city_)) {

                    int sum = Integer.parseInt(l.get(i).get("count")) + Integer.parseInt(countList.get(j).get("count"));

                    countList.get(j).put("count", sum + "");

                    flag = 1;

                    continue;

                }

            }

            if (flag == 0) {

                countList.add(l.get(i));

            }

        }

        for (Map<String, String> map : countList) {

            System.out.println(map);

        }

    }

猜你喜欢

转载自blog.csdn.net/gmaaa123/article/details/89703511