博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List数据转Map数据并进行分组排序
阅读量:6278 次
发布时间:2019-06-22

本文共 1976 字,大约阅读时间需要 6 分钟。

  利用JAVA 8的特性实现List数据转Map数据并进行分组排序。

1、准备数据

List
> list = new ArrayList<>(); Map
m1 = new HashMap<>(); m1.put("a", 1); m1.put("c", 3); Map
m2 = new HashMap<>(); m2.put("a", 11); m2.put("b", 2); Map
m3 = new HashMap<>(); m3.put("a", 111); m3.put("c", 1); Map
m4 = new HashMap<>(); m4.put("b", 22); Map
m5 = new HashMap<>(); m5.put("a", 1111); m5.put("b", 222); list.add(m1); list.add(m2); list.add(m3); list.add(m4); list.add(m5); System.out.println("未分组排序数据:" + list); System.out.println("已分组排序数据:" + transition(list));

2、编写分组排序方法

public static Map
>> transition(List
> list){ Map
>> map = new HashMap<>(); // 分组 for(Map
temp : list) { // 获取Map的每一对值 Iterator
> iterator = temp.entrySet().iterator(); while (iterator.hasNext()) { List
> listAndMap = new ArrayList<>(); // 获取到每一个实体 Map.Entry
entity = iterator.next(); if (map.containsKey(entity.getKey())) { // 获取原来存在的数据 List
> lm = map.get(entity.getKey()); lm.add(new HashMap
() { { 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
() { { put(entity.getKey(), entity.getValue()); }}); map.put(entity.getKey(), listAndMap); } } } return map; }

3、测试

System.out.println("未分组排序数据:" + list);        System.out.println("已分组排序数据:" + transition(list));

4、输出结果

未排序数据:[{a=1, c=3}, {a=11, b=2}, {a=111, c=1}, {b=22}, {a=1111, b=222}]已排序数据:{a=[{a=1111}, {a=111}, {a=11}, {a=1}], b=[{b=222}, {b=22}, {b=2}], c=[{c=3}, {c=1}]}

* 本人小白,希望可以帮助到跟我一样的小白,希望大神多多指导。

转载于:https://www.cnblogs.com/karen-ran/p/9645197.html

你可能感兴趣的文章
mongodb $exists
查看>>
js实现页面跳转的几种方式
查看>>
sbt笔记一 hello-sbt
查看>>
常用链接
查看>>
pitfall override private method
查看>>
!important 和 * ----hack
查看>>
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>