热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

优雅而高效的方式将多个地图聚合到一个地图上

如何解决《优雅而高效的方式将多个地图聚合到一个地图上》经验,为你挑选了1个好方法。

我有一张地图清单。所有地图都具有相同的键。现在,我想通过汇总每个键的值,将列表的所有Map汇总到一个Map。

感觉应该有一个更好的方法可以做到这一点。

// source
public List> list_of_maps = new ArrayList<>();

// destination
private Map aggr_map = new HashMap<>();


for(Integer i : list_of_maps.iterator().next().keySet()){
    long c = 0;
    for(Map map : list_of_maps){
        c += map.get(i).getCount();
    }
    aggr_map.put(i, c);
}

我经常运行此聚合,因此运行时非常重要...



1> Ravindra Ran..:

你可以这样做

Map numToSumMap = list_of_maps.stream()
    .flatMap(m -> m.entrySet().stream())
    .collect(Collectors.groupingBy(Map.Entry::getKey, 
        Collectors.summingLong(Map.Entry::getValue)));


推荐阅读
author-avatar
蜜小嘟_546
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有