java8 lambda函数式编程,分组统计:
@Test
public void test1() {
//统计数量
List<String> list=new ArrayList<>();
list.add("1001");
list.add("1001");
list.add("1002");
list.add("1003");
Map<String, Long> map= list.stream().collect(Collectors
.groupingBy(Function.identity(),Collectors.counting()));
System.out.println(map);//{1003=1, 1002=1, 1001=2]}
}
@Test
public void test2() {
List<ImportBean> list =new ArrayList<ImportBean>();
list.add(new ImportBean("1001", "商品a", 10));
list.add(new ImportBean("1001", "商品a", 11)); //xx
list.add(new ImportBean("1001", "商品a", 12)); //xx
list.add(new ImportBean("1002", "商品b", 13));
list.add(new ImportBean("1003", "商品c", 14));
list.add(new ImportBean("1004", "商品c", 14));//xx
//按照商品编号分组统计,返回的map中key为商品编号,value为List<ImportBean>
Map<String, List<ImportBean>> map1= list.stream().collect(Collectors.groupingBy((ImportBean bean)->{
return bean.getGoodsNo();
}));
System.out.println(map1);
//按照商品编号分组统计,返回的map中key为商品编号,value为元素的数量
Map<String, Long> map2=list.stream().collect(Collectors.groupingBy((ImportBean bean)->{
return bean.getGoodsNo();
},Collectors.counting()));
System.out.println(map2);
}


阅读排行


Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1