List<Map<String, Integer>> 同key的value全部累加合并

public static void main(String[] args){
        List<Map<String,Object>> list1 = new ArrayList<Map<String,Object>>();
        Map<String,Object> map1 = new HashMap<String,Object>();
        Map<String,Object> map2 = new HashMap<String,Object>();
        Map<String,Object> map3 = new HashMap<String,Object>();
        map1.put("张三", new Integer(92));
        map2.put("李四", new Integer(85));
        map3.put("张三", new Integer(90));
        list1.add(map1);
        list1.add(map2);
        list1.add(map3);

        Map<String,Object> mapAll = new HashMap<String,Object>();
        for(Map<String,Object> map:list1){
            for(Map.Entry<String, Object> entry:map.entrySet()){
                String name = entry.getKey();
                Object score = entry.getValue();
                Object scoreAll = mapAll.get(entry.getKey());
                if(scoreAll == null){
                    mapAll.put(name, score);
                }else{
                    scoreAll = new Integer((((Integer)scoreAll).intValue() + ((Integer)score).intValue()));
                    mapAll.put(name, scoreAll);
                }
            }
        }

        for(Map.Entry<String, Object> entry:mapAll.entrySet()){
            //如果需要将map再做list,在这里处理
            System.out.println(entry.getKey() + "," + entry.getValue());
        }

    }

原文地址:https://www.cnblogs.com/hahajava/p/9456479.html

时间: 2024-10-08 04:54:46

List<Map<String, Integer>> 同key的value全部累加合并的相关文章

Java中Map根据键值(key)或者值(value)进行排序实现

我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Key是唯一的,而value不唯一.Map是一个接口,我们不能 直接声明一个Map类型的对象,在实际开发中,比较常用的Map性数据结构是HashMap和TreeMap,它们都是Map的直接子类.如果考虑到存取 效率的话,建议使用HashMap数据结构,而如果需要考虑到Key的顺序,建议使用TreeMap,但是

取Map&lt;String,site&gt;map中的全部key

Map<String,Site> siteMap = conference.getSiteList(); Set<String> keyList = siteMap.keySet();//得到key集合 Iterator<String> it = keyList.iterator();//遍历key while(it.hasNext()){ ConfModelVsDept ConfModelVsDept = new ConfModelVsDept(); String u

javaBean与Map&lt;String,Object&gt;互转

1. 为什么要实现javaBean与Map<String,Object>相互转换? 用过spring的都知道spring的MVC框架中有一个BaseCommandController对象,利用这个对象我们就可以很方便的将从客户端传递过来的参数封装到一个JavaBean对象中去,而不需要我们request.getParameter("name");bean.setName(name);了,从而也简化了不少的工作.如果大家用过BeanUtils.populate的话,就知道,这

CharsRefIntHashMap并不比HashMap&lt;String, Integer&gt;快

我模仿lucene的BytesRef写了一个CharsRefIntHashMap,实测效果并不如HashMap<String, Integer>.代码如下: package com.dp.arts.lucenex.utils; import org.apache.lucene.util.CharsRef; public interface CharsRefIntMap { public static abstract class CharsRefIntEntryAccessor { publi

foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值

http://www.cnblogs.com/anruy/p/5942044.html Integer updateA(@Param("A") Map<String, Double> A); <update id="updateA" parameterType="java.util.Map"> <foreach collection="A.keys" item="key" in

分页查询和分页缓存查询,List&lt;Map&lt;String, Object&gt;&gt;遍历和Map遍历

分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = page * limit; sql = "select * from (select fulltable.*, ROWNUM RN from (" + sql + ") fulltable where ROWNUM <= " + end + ") where

JAVA中遍历Map和Set方法,取出map中所有的key

Java遍历Set集合 1.迭代器遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator(); while (it.hasNext()) { String str = it.next(); System.out.println(str); } 2.for循环遍历: for (String str : set) { System.out.println(str); }

CharsRefIntHashMap并不比HashMap&amp;lt;String, Integer&amp;gt;快

我模仿lucene的BytesRef写了一个CharsRefIntHashMap,实測效果并不如HashMap<String, Integer>.代码例如以下: package com.dp.arts.lucenex.utils; import org.apache.lucene.util.CharsRef; public interface CharsRefIntMap { public static abstract class CharsRefIntEntryAccessor { pub

将List&lt;Map&lt;String, Object&gt;&gt;排序,升序、降序

import java.net.SocketException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class Ma