欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-24 12:17:17
JAVA 8 lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和 1,先按照条件找到所有符合的对象,生成集合。 2,把生成的集合进行单列求和。 以上两步骤用lambda 表达式可以合并。 定义对象: 初始化对象,商品1和商品2有相同的分类id: 用lambda 表达式的链式操作一 ......

  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 新特性真的十分强大。有兴趣可以一起交流。