1.首先通过数据库等方式获取要统计二维的数据,示例如下:
date (一维)
area(二维)
count

2018/11/11

EN

1

2018/11/11

US

5

2018/11/12

EN

3

2018/11/12

US

2

2018/11/12

US

2

2.数量统计
//主要用到了Collectors.groupingBy方法进行分组,方法最后一个参数可以对分组后的数据继续操作,这样通过嵌套的方式就可以生成多维统计数据
//使用了LinkedHashMap保证数据有序
Map<String,Map<String,Integer>> result = list.stream().
                          collect(Collectors.groupingBy(e->e.get("date"),LinkedHashMap::new, 
                              Collectors.groupingBy(e->e.get("area"),LinkedHashMap::new,
                                 Collectors.summingInt(e->Integer.parseInt(e.get("count"))))));

 3.执行后的结果为:

          

<String,<String,Integer>>
    2018/11/11,EN,1
           US,5
    2018/11/12,EN,3
            US,4