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


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

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

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

 
// Cart對象<br data-filtered="filtered">@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);
}};<br>
 
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