使用Java8中group by分組並對各個小組進行操作


 1 public static void main(String[] args) {
 2         EmployDO zhangsan = new EmployDO.Builder().name("張三").sex("男").position("職員").status("在職").age("20").build();
 3         EmployDO lisi = new EmployDO.Builder().name("李四").sex("男").position("職員").status("在職").age("24").build();
 4         EmployDO wangwu = new EmployDO.Builder().name("王五").sex("男").position("職員").status("離職").age("21").build();
 5         EmployDO yangliu = new EmployDO.Builder().name("楊六").sex("男").position("職員").status("在職").age("25").build();
 6         EmployDO lihua = new EmployDO.Builder().name("李華").sex("女").position("領導").status("在職").age("20").build();
 7         EmployDO xiaohua = new EmployDO.Builder().name("小花").sex("女").position("職員").status("離職").age("23").build();
 8         EmployDO xiaofeng = new EmployDO.Builder().name("小鳳").sex("女").position("領導").status("在職").age("25").build();
 9         List<EmployDO> employDOS = Arrays.asList(zhangsan, lisi, wangwu, yangliu, lihua, xiaohua, xiaofeng);
10         // 根據sex分組
11         Map<String, List<EmployDO>> map = employDOS.stream().collect(Collectors.groupingBy(EmployDO::getSex));
12         System.out.println(JSON.toJSONString(map));
13         // 根據sex分組,計算出每個小組的人數
14         Map<String, Long> countMap = employDOS.stream().collect(Collectors.groupingBy(employ -> employ.getSex(), Collectors.counting()));
15         System.out.println(JSON.toJSONString(countMap));
16     }

輸出 :
map輸出:
{"女":[{"age":"20","name":"李華","position":"領導","sex":"女","status":"在職"},{"age":"23","name":"小花","position":"職員","sex":"女","status":"離職"},{"age":"25","name":"小鳳","position":"領導","sex":"女","status":"在職"}],"男":[{"age":"20","name":"張三","position":"職員","sex":"男","status":"在職"},{"age":"24","name":"李四","position":"職員","sex":"男","status":"在職"},{"age":"21","name":"王五","position":"職員","sex":"男","status":"離職"},{"age":"25","name":"楊六","position":"職員","sex":"男","status":"在職"}]}

countMap輸出:
{"女":3,"男":4}


免責聲明!

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



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