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 // partitioningBy可以根據判斷條件將一個集合拆分為兩個集合, 返回值為map,其中的key為布爾值 11 Map<Boolean, List<EmployDO>> map = employDOS.stream().collect(Collectors.partitioningBy(employDO -> "在職".equals(employDO.getStatus()))); 12 System.out.println("在職員工:" + JSON.toJSONString(map.get(Boolean.TRUE))); 13 System.out.println("離職員工:" + JSON.toJSONString(map.get(Boolean.FALSE))); 14 }
輸出結果:
在職員工:
[{"age":"20","name":"張三","position":"職員","sex":"男","status":"在職"},{"age":"24","name":"李四","position":"職員","sex":"男","status":"在職"},{"age":"25","name":"楊六","position":"職員","sex":"男","status":"在職"},{"age":"20","name":"李華","position":"領導","sex":"女","status":"在職"},{"age":"25","name":"小鳳","position":"領導","sex":"女","status":"在職"}]
離職員工:
[{"age":"21","name":"王五","position":"職員","sex":"男","status":"離 職"},{"age":"23","name":"小花","position":"職員","sex":"女","status":"離職"}]