时间: 2021-01-07 02:38:41

标签:

javascript

Java数据聚合问题

public class Demo {public static void main(String[] args) throws IOException {

HashMap m1 = new HashMap<>();

m1.put("month","2020-06");

m1.put("plan_working_hours",272.5);

m1.put("month_total_working_hours",120);

m1.put("project_code","ToB-APP");

m1.put("this_years_total_working_hours",287);

m1.put("project_name","B端APP框架");

m1.put("total_working_hours",307);

HashMap m2 = new HashMap<>();

m2.put("month","2020-07");

m2.put("plan_working_hours",272.5);

m2.put("month_total_working_hours",93);

m2.put("project_code","ToB-APP");

m2.put("this_years_total_working_hours",287);

m2.put("project_name","B端APP框架");

m2.put("total_working_hours",307);

HashMap m3 = new HashMap<>();

m3.put("month","2020-11");

m3.put("plan_working_hours",104);

m3.put("month_total_working_hours",16);

m3.put("project_code","1001");

m3.put("this_years_total_working_hours",67);

m3.put("project_name","C端底座");

m3.put("total_working_hours",150);

HashMap m4 = new HashMap<>();

m4.put("month","2020-12");

m4.put("plan_working_hours",104);

m4.put("month_total_working_hours",51);

m4.put("project_code","1001");

m4.put("this_years_total_working_hours",67);

m4.put("project_name","C端底座");

m4.put("total_working_hours",150);

ArrayListmaps = new ArrayList<>();

maps.add(m1);

maps.add(m2);

maps.add(m3);

maps.add(m4);

//todo 做数据聚合(

// 将project_name值相同的数据中的month和month_total_working_hours聚合到一个list中

// 每个project_name只有一个map数据)

/**

* 格式如下

*

* {

* "monthList": ["2020-06":120 ,"2020-07":93]

* "plan_working_hours": 272.5,

* "project_code": "ToB-APP",

* "this_years_total_working_hours": 287,

* "project_name": "B端APP框架",

* "total_working_hours": 307

* },

*/

}

}

最佳答案

Map one = Maps.newHashMap();

one.put("one",1);

one.put("two",2);

Map two = Maps.newHashMap();

two.put("one",1);

two.put("two",2);

List> list = Lists.newArrayList();

list.add(one);

list.add(two);

Set keySet = one.keySet();

Map> result = list.stream().reduce(new HashMap<>(), (s, o) -> {

keySet.forEach(a -> {

if (s.containsKey(a)) {

List value = s.get(a);

value.add(o.get(a));

} else {

List value = Lists.newArrayList();

value.add(o.get(a));

s.put(a, value);

}

});

return s;

}, (s, o) -> s);

System.out.println(result);

java 数据聚合_Java数据聚合问题请教?相关推荐

  1. java 聚合_Java 8 聚合操作详解

    Oracle在2014年3月19日如期发布了Java 8.Java 8版本被认为是具有里程碑意义的一个版本,Oracle在该版本中添加了许多新特性,包括Lambda表达式.方法引用.加强了安全等等. ...

  2. java电台数据解析_Java数据解析---SAX

    一.Sax解析 是从头到尾逐行逐个元素读取内容,修改较为不便,但适用于只读的大文档. Sax采用事件驱动的方式解析文档.简单点说,如同在电影院看电影一样,从头到尾看一遍就完了,不能回退(Dom可来来回 ...

  3. java protobuffer序列化_Java数据通讯中使用Googgle Protobuf 序列化与反序列化

    概念 1.什么是protocol buffer ProtocolBuffer是用于结构化数据串行化的灵活.高效.自动的方法,有如XML,不过它更小.更快.也更简单.你可以定义自己的数据结构,然后使用代 ...

  4. java的聚合_java中聚合是什么

    java中聚合是一种特殊的关联形式,它是两个类之间的关系,是一种HAS-A关系,是一种单向关联.如果类具有实体引用,则称为聚合. 举个例子:在一个有这么两个类Studentclass和Addressc ...

  5. java数组类型转换_java数据类型转换和数组总结

    流程控制 分支 循环语句 if...else... if...else if...else switch(值0) {          ------------值0是什么类型, case后面的值就要是 ...

  6. java 数据验证_Java 数据验证

    在web开发当前就会遇到一些数据有效性验证的相关代码编写. 一般的写法如: public class User { public String username; public String pass ...

  7. java 的数据类型转换_java数据类型转换汇总

    Java的数据类型的转换一般分为三种,分别是:简单数据类型之间的转换.字符串与其他数据类型的转换.其他实用数据类型的转换. 一.简单数据类型之间的转换 在java中,整型.实型.字符型被视为简单数据类 ...

  8. java 数据截断_java – 数据截断:第1行的列’标志’的数据太长

    我试图将一张照片插入一个MySQL表的BLOB列,我得到一个例外: Data too long for column 'logo' at row 1. 这是JDBC: int idRestaurant ...

  9. java 类型转换方法_java数据类型转换的常见方法

    public class Testfun { public static void main(String[] args) { // (一)跨Number父类的类型转换 // 1.str转int =& ...

最新文章

  1. mirna富集分析_2020年的3+分ceRNA分析长啥样?
  2. ps cs3中显示任何像素不大于50%选择。选区边将不可见是什么意思
  3. pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2)
  4. 2016级算法第二次上机-F.ModricWang's Number Theory II
  5. Nginx常用命令有哪些?
  6. linux服务chm,linux系统服务 chm
  7. 我们为什么活得这么累
  8. 《出发吧一起》第二阶段个人总结——Day01
  9. Linux cat 命令用法
  10. 计算机怎么用字节表示300,网速300兆是什么意思(图文)
  11. 原生JS实现一个无缝轮播图插件(支持vue)
  12. 送走2007 ^_^ 迎来2008
  13. android原生桌面,谷歌官方出品的安卓原生桌面App 轻松干掉你手机上臃肿的的桌面!...
  14. 数字图像处理之matlab大作业:美图秀秀
  15. Windows安全配置
  16. Kafka ~ 消息队列之推还是拉
  17. 【C语言】扫雷游戏详解及完整代码
  18. youtube-dl 下载 playlist 命令
  19. 转:查理·芒格:让打击和麻烦成为成长的契机
  20. java bks证书_jks bks 等的定义 如何将jks转化为bks的

热门文章

  1. 最牛逼的核心框架,没有之一!
  2. 35岁老码农:老板,你看我还有机会吗?
  3. 选择大于努力?某程序员吐槽:自己毕业去了百度,技术不如自己的室友去了快手,如今股票1500万!...
  4. 新同事不讲武德,乱写 SQL 偷袭我!!
  5. 携程数据库高可用架构实践
  6. 人人都能看懂的 6 种限流实现方案!(纯干货)
  7. 漫话:如何给女朋友解释什么是系统可用性?
  8. 做程序员10年了,复制粘贴是我最牛逼的技能,从菜鸟兑变成大牛,直到看了这些大佬的公众号...
  9. 什么是OKR?目标管理如何做?
  10. 第11章 UART 串口通信(手把手教你学51单片机pdf部分)