当前位置: 移动技术网 > IT编程>开发语言>Java > JAVA 8 lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和

JAVA 8 lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和

2018年10月25日  | 移动技术网IT编程  | 我要评论

  java 8 lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和

  1,先按照条件找到所有符合的对象,生成集合。

  2,把生成的集合进行单列求和。

  以上两步骤用lambda 表达式可以合并。

  定义对象:

  

public class cart {
	
	// 商品id
    private integer id;
	
	// 商品所属分类
    private integer categoryid;

	// 数量
    private integer count; 
}

  初始化对象,商品1和商品2有相同的分类id:

list<cart> list = new arraylist<cart>(3) {{
	
	cart cart1 = new cart();
	cart1.setid(1);
	cart1.setcategoryid(1); 
	cart1.setcount(1);
	add(cart1);
	
	cart cart2 = new cart();
	cart2.setid(2);
	cart2.setcategoryid(1); 
	cart2.setcount(1);
	add(cart2);
	
	cart cart3 = new cart();
	cart3.setid(3);
	cart3.setcategoryid(2); 
	cart3.setcount(1);
	add(cart3);
	
}};

  用lambda 表达式的链式操作一次获取结果,相同分类id的商品数量求和:

integer sum = list.stream().filter(item -> item.getcategoryid().equals(1)).collect(collectors.tolist()).stream().maptoint(cart::getcount).sum();

  博主也在学习中,java 8 新特性真的十分强大。有兴趣可以一起交流。

  

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网