JAVA 8 lambda 表達式實現按某個屬性值查找對象集合中符合條件的對象


  JAVA 8 lambda 表達式實現按某個屬性值查找對象集合中符合條件的對象  

  當前的需求是從數據庫或者其他服務中獲取到了一個對象集合,假設對象是Cart購物車,里面有product_id,product_name,count等。

  需要從集合中查找商品id是1的商品對象。用表達式來查詢代碼很簡潔。

// Cart對象
@Data @JsonIgnoreProperties(ignoreUnknown = true) public class Cart { /** * 總庫商品ID */ @JsonProperty(value = "product_id") private Long productId; /** * 商品名稱 */ @JsonProperty(value = "name") private String productName; /** * 數量 */ @JsonProperty("count") private Integer count; }

  模擬一個Cart集合,假設有兩個商品牛腩飯和蛋炒飯,id是1和2。

List<Cart> cartlist = new ArrayList<Cart> (2){{
  Cart cart1 = new Cart();
  cart1.setProductId(1L);
  cart1.setProductName("牛腩飯");
  cart1.setCount(1);
  add(cart1);
  Cart cart2 = new Cart();
  cart2.setProductId(2L);
  cart2.setProductName("蛋炒飯");
  cart2.setCount(1);
  add(cart2);
}};
Optional<Cart> cartOptional = cartlist.stream().filter(item -> item.getProductId().equals(1L)).findFirst(); if (cartOptional.isPresent()) { // 存在 Cart cart = cartOptional.get(); } else { // 不存在 }

  

  


免責聲明!

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



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