List<HashMap<String, String>>详细讲解

本文介绍了一个使用Java集合操作的具体案例,展示了如何创建包含多个HashMap的List,并提供了合并相同Map的实现方式。通过这个例子,读者可以了解到如何在Java中操作复杂的集合结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.List<HashMap<String,String>>

List中每一项都是一个HashMap

HashMap<String,String> map中 key是一个String,value也是一个String

2.

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
public class Test {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        List<Map<String, String>> list = new ArrayList<Map<String,String>>();
        Map<String,String> map1 = new HashMap<String,String>();
        map1.put("count""1");
        map1.put("name""帮宝适纸尿裤L164 超薄干爽夏季透气专用婴儿尿不湿");
        map1.put("province""江苏省");
        map1.put("date""2014-09-23 10:13:39");
        map1.put("channel""东环大润发");
        map1.put("city""苏州市");
        list.add(map1);
     
        System.out.println(mergeList(list));
         
         
    }
 
     
    /**
     * 合并相同的Map
     * @param list
     * @return
     */
    public static List<Map<String,String>> mergeList(List<Map<String,String>> list){
        List<Map<String,String>> retList = new ArrayList<Map<String,String>>();
        for(int i=0;i<list.size();i++){
            Map<String,String> map = list.get(i);
            String name = map.get("name");
            String city = map.get("city");
            String count = map.get("count");
            Map<String,String> newMap=isExistSame(i,name,city,count,list);
            if(null==newMap){
                retList.add(map);
            }
            else{
                list.remove(map.get(i));
                retList.add(newMap);
            }
        }
        return retList;
    }
     
    private static Map<String,String> isExistSame(int i,String name,String city,String count,List<Map<String,String>> list){
        Map<String,String> newMap = null;
        for(int j=i+1;j<list.size();j++){
            Map<String,String> innerMap = list.get(j);
            String name1 = innerMap.get("name");
            String city1 = innerMap.get("city");
            String count1 = innerMap.get("count");
            if(name.equals(name1)&&city.equals(city1)){
                newMap = new HashMap<String,String>();
                newMap.put("count"""+(Integer.parseInt(count)+Integer.parseInt(count1)));
                Iterator<String> keyIterator = innerMap.keySet().iterator();
                while(keyIterator.hasNext()){
                    String key = keyIterator.next();
                    if(!key.equals("count")){
                        newMap.put(key, innerMap.get(key));
                    }
                }
                list.remove(j);
            }
        }
        return newMap;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值