java使用stream做二維數據統計,把List轉換為Map >


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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM