java Stream流anyMatch和allMatch和noneMatch的區(qū)別

一、anyMatch

   判斷數(shù)據(jù)列表中是否存在任意一個元素符合設置的predicate條件,如果是就返回true,否則返回false。
  .接口定義:  
           [boolean] anyMatch(Predicate<? super T> predicate);
  .方法描述:
           在anyMatch 接口定義中是接收 Predicate 類型參數(shù),在Lamdba表達式中 Predicate<T> 是接收一個T類型參數(shù),
           然后經(jīng)過邏輯驗證返回布爾值結(jié)果。這里anyMatch表示,判斷的條件里,任意一個元素符合條件,就返回true值。
  .示例
    List<JSONObject> o0o0= new ArrayList<>();
    JSONObject o0= FASTJSON.newDoc();
    o0.put("itemunit", 0);
    o0.put("mat_no", "mat_no");
    o0.put("warehouseid", "warehouseid");
    o0.put("position_no", "position_no");
    o0.put("batch", "batch");
    o0o0.add(o0);
    JSONObject o0o = FASTJSON.newDoc();
    o0o .put("itemunit", 0);
    o0o .put("mat_no", "mat_no");
    o0o .put("warehouseid", "warehouseid");
    o0o .put("position_no", "position_no");
    o0o .put("batch", "batch");
    o0o0.add(o0o );
    boolean b=o0o0.stream().anyMatch(doc-> doc.getIntValue("itemunit")!=0);
    System.out.println(b);
 .結(jié)果: false

二、allMatch

   判斷數(shù)據(jù)列表中全部元素都符合設置的predicate條件,如果是就返回true,否則返回false,流為空時總是返回true。
  .接口定義:  
           boolean allMatch(Predicate<? super T> predicate);
  .方法描述:
           在allMatch 接口定義中是接收 Predicate 類型參數(shù),在Lamdba表達式中 Predicate<T> 是接收一個T類型參數(shù),
           然后經(jīng)過邏輯驗證返回[布爾值]結(jié)果。這里allMatch表示,判斷的條件里,全部元素符合條件,就返回true值。
  .示例
    List<JSONObject> o0o0= new ArrayList<>();
    JSONObject o0= FASTJSON.newDoc();
    o0.put("itemunit", 0);
    o0.put("mat_no", "mat_no");
    o0.put("warehouseid", "warehouseid");
    o0.put("position_no", "position_no");
    o0.put("batch", "batch");
    o0o0.add(o0);
    JSONObject o0o = FASTJSON.newDoc();
    o0o .put("itemunit", 0);
    o0o .put("mat_no", "mat_no");
    o0o .put("warehouseid", "warehouseid");
    o0o .put("position_no", "position_no");
    o0o .put("batch", "batch");
    o0o0.add(o0o );
    boolean b =o0o0.stream().allMatch(doc-> doc.getIntValue("itemunit")==0);
    System.out.println(b);
 .結(jié)果: true

三、noneMatch

   判斷數(shù)據(jù)列表中全部元素都不符合設置的predicate條件,如果是就返回true,否則返回false,流為空時總是返回true。
  .接口定義:  
           boolean noneMatch(Predicate<? super T> predicate);
  .方法描述:
           在noneMatch接口定義中是接收 Predicate 類型參數(shù),在Lamdba表達式中 Predicate<T> 是接收一個T類型參數(shù),
           然后經(jīng)過邏輯驗證返回布爾值結(jié)果。這里noneMatch表示與allMatch相反,判斷的條件里的元素,所有的元素都不符合,就返回true值。
  .示例
    List<JSONObject> o0o0= new ArrayList<>();
    JSONObject o0= FASTJSON.newDoc();
    o0.put("itemunit", 0);
    o0.put("mat_no", "mat_no");
    o0.put("warehouseid", "warehouseid");
    o0.put("position_no", "position_no");
    o0.put("batch", "batch");
    o0o0.add(o0);
    JSONObject o0o = FASTJSON.newDoc();
    o0o .put("itemunit", 0);
    o0o .put("mat_no", "mat_no");
    o0o .put("warehouseid", "warehouseid");
    o0o .put("position_no", "position_no");
    o0o .put("batch", "batch");
    o0o0.add(o0o );
    boolean b=o0o0.stream().noneMatch(doc-> doc.getIntValue("itemunit")==0);
    System.out.println(b);
 .結(jié)果: false
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容