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