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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM