文档章节

JAVA对map进行分组

火龙战士
 火龙战士
发布于 04/21 10:31
字数 159
阅读 57
收藏 0
public static Map<String, List<Map<String, Object>>> transition(List<Map<String, Object>> list){
        Map<String, List<Map<String, Object>>> map = new HashMap<>();
        // 分组
        for(Map<String, Object> temp : list) {
            // 获取Map的每一对值
            Iterator<Map.Entry<String, Object>> iterator = temp.entrySet().iterator();
            while (iterator.hasNext()) {
                List<Map<String, Object>> listAndMap = new ArrayList<>();
                // 获取到每一个实体
                Map.Entry<String, Object> entity = iterator.next();
                if (map.containsKey(entity.getKey())) {
                    // 获取原来存在的数据
                    List<Map<String, Object>> lm = map.get(entity.getKey());
                    lm.add(new HashMap<String, Object>() {{
                        put(entity.getKey(), entity.getValue());
                    }});
                    Collections.sort(lm, (param1, param2) ->
                            (param2.get(entity.getKey()).toString().compareTo(param1.get(entity.getKey()).toString()))
                    );
                    map.replace(entity.getKey(), lm);
                } else {
                    listAndMap.add(new HashMap<String, Object>() {{
                        put(entity.getKey(), entity.getValue());
                    }});
                    map.put(entity.getKey(), listAndMap);
                }
            }
        }
        return map;
    }

© 著作权归作者所有

火龙战士

火龙战士

粉丝 116
博文 136
码字总数 100857
作品 0
北京
后端工程师
私信 提问
Java 8的Lambda VS Groovy的Closure

本文翻译自:http://www.javacodegeeks.com/2014/06/java-8-lambdas-vs-groovy-closures-compactness-grouping-and-summing.html Java 8已经支持lambdas,它很像Groovy早就支持的:闭包。 在......

翟志军
2014/07/18
0
2
数据库中间件 Sharding-JDBC 源码分析 —— 结果归并

摘要: 原创出处 http://www.iocoder.cn/Sharding-JDBC/result-merger/ 「芋道源码」欢迎转载,保留摘要,谢谢! 本文主要基于 Sharding-JDBC 1.5.0 正式版 1. 概述 2. MergeEngine 2.1 Selec...

芋道源码
2017/10/29
0
0
mongodb mapredReduce 多个条件分组(group by)

Mongodb 没有传统数据库的group函数,如果分组需要走MapReduce。这种MR与HadoopMR类似。下面看看Mongodb 的分组实现 现在又一张 表它的数据格式如下: { "_id" : ObjectId("53b224e0a1ae7232...

寻梦2012
2014/07/09
0
0
归约与分组 - 读《Java 8实战》

区分Collection,Collector和collect 代码中用到的类与方法用红框标出,可从git库中查看 收集器用作高级归约 预定义收集器的功能 将流元素归约和汇总为一个值 元素分组 元素分区,分组的特殊情...

yysue
2018/08/16
0
0
死磕Java 8特性系列---流的深入

本次,读了两本书,一本是《Beginning Java 8 Language Features》,一本是《Java 8 实战》,有感。感觉平时我们都是使用了个Java8相关特性的皮毛。加上以前面试被人问:你知道一个列表我想同...

心中的理想乡
2018/09/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android ANR原理分析

一、概述 ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR...

天王盖地虎626
17分钟前
1
0
IT兄弟连 Java语法教程 Java开发环境 安装JDK

因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK。目前最新版本的JDK是JDK 10,但是我们以学习JDK 8为主,所以我们要安装的版本是JDK 8。安装步骤如...

老码农的一亩三分地
23分钟前
0
0
Spring Boot Repository查询条件关键字

查询条件关键字 Keyword Sample JPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or findByLastnameOrFirstname … where x.lastname = ?1 or......

兜兜毛毛
29分钟前
0
0
[js]closeure闭包

// // closure 1 function func() { var count = 0; function cal(){ count += 2; console.log(count); return count; ......

Danni3
29分钟前
0
0
centos 设置hostname

1、centos 6 hostname配置文件为 /etc/sysconfig/network 内容为 NETWORKING=yesHOSTNAME=test_hostname hostname是Linux系统下的一个内核参数,它保存在 /proc/sys/kernel/hostname 下,但......

燃犀
55分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部