博客详情

java中List集合按元素属性统计 (原创)

作者: 朝如青丝暮成雪
发布时间:2019-04-12 16:36:54  文章分类:java8   阅读(2672)  评论(0)

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);
 }


关键字:  java  java8  lambda
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

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

鄂公网安备 42011102000739号