java Stream流anyMatch和allMatch和noneMatch的区别

一、anyMatch

   判断数据列表中是否存在任意一个元素符合设置的predicate条件,如果是就返回true,否则返回false。
  .接口定义:  
           [boolean] anyMatch(Predicate<? super T> predicate);
  .方法描述:
           在anyMatch 接口定义中是接收 Predicate 类型参数,在Lamdba表达式中 Predicate<T> 是接收一个T类型参数,
           然后经过逻辑验证返回布尔值结果。这里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);
 .结果: false

二、allMatch

   判断数据列表中全部元素都符合设置的predicate条件,如果是就返回true,否则返回false,流为空时总是返回true。
  .接口定义:  
           boolean allMatch(Predicate<? super T> predicate);
  .方法描述:
           在allMatch 接口定义中是接收 Predicate 类型参数,在Lamdba表达式中 Predicate<T> 是接收一个T类型参数,
           然后经过逻辑验证返回[布尔值]结果。这里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);
 .结果: true

三、noneMatch

   判断数据列表中全部元素都不符合设置的predicate条件,如果是就返回true,否则返回false,流为空时总是返回true。
  .接口定义:  
           boolean noneMatch(Predicate<? super T> predicate);
  .方法描述:
           在noneMatch接口定义中是接收 Predicate 类型参数,在Lamdba表达式中 Predicate<T> 是接收一个T类型参数,
           然后经过逻辑验证返回布尔值结果。这里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);
 .结果: false
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。