boolean noneMatch​(Predicate<? super T> predicate)

这个方法的参数是个判断函数,流中不包含有满足这个判断的元素或者流中元素为空的时候方法返回true,否则返回false。

要理解这个方法的作用和使用方法最好的方式就是例子:

void stream_noneMatch() {List<String> list = List.of("Mr.zhangsan","Mr.lisi","Mr.wanger","Mr.mazi");boolean bl = list.stream().noneMatch(a -> a.indexOf("lisi")>-1);System.out.println(bl);boolean bl2 = list.stream().noneMatch(a -> a.indexOf("lisi001")>-1);System.out.println(bl2);}

运行结果:

false

true

看到没有,流中含有名为lisi的元素就返回false,不包含lisi001就返回true,就这么简单。看个极端使用情况例子:

System.out.println(list.stream().noneMatch(a -> false));System.out.println(list.stream().noneMatch(a -> true));

运行结果:

true

false

返回的布尔值结果和判断函数Predicate的运算的布尔值结果刚好相反。

这个方法是一个短路操作,即在某些情况下不用遍历整个流中的元素就可以中断操作获得最终返回结果。我们可以用peek方法在流中的元素上绑定打印操作用来跟踪这个元素是否被使用(或称之为消费)。看代码:

boolean boo = Stream.of(1,2,3,4,5,6).peek(System.out::println).noneMatch(a -> a>3);System.out.println(boo);

运行结果:

1

2

3

4

false

判断条件是元素值大于3,当运行到流中第4个元素的时候发现不满足判断条件,这个时候就中断操作返回false。就如运行结果一样,打印数字4这个元素后就中断了操作,不再打印后面的元素。

Stream.noneMatch相关推荐

  1. Stream.noneMatch()

    Stream流的noneMatch()方法返回此流中是否没有元素与提供的谓词匹配. 如果流中没有元素匹配提供的谓词,或者流为空,则该方法返回true. 比如: Stream stream = Stre ...

  2. java8 .stream().anyMatch / allMatch / noneMatch用法

    java8 stream接口终端操作 anyMatch,allMatch,noneMatch anyMatch:判断的条件里,任意一个元素成功,返回true allMatch:判断条件里的元素,所有的 ...

  3. 巧用Stream优化老代码,太清爽了!

    [文章来源]https://sourl.cn/DNU3FV Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简 ...

  4. 万字详解,JDK1.8新特性的Lambda、Stream和日期的使用详解

    前言 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScr ...

  5. 使用 Stream API 高逼格 优化 Java 代码!

    作者 | 何甜甜在吗 来源 | https://juejin.cn/post/6844903945005957127 使用Stream API优化代码 Java8的新特性主要是Lambda表达式和流, ...

  6. java8函数式编程 视频_快速掌握Java8 Stream函数式编程技巧

    函数式编程优势"函数第一位",即函数可以出现在任何地方. 可以把函数作为参数传递给另一个函数,还可以将函数作为返回值. 让代码的逻辑更清晰更优雅. 减少了可变量(Immutable ...

  7. Java 8 Stream Tutorial--转

    原文地址:http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ This example-driven tutori ...

  8. Java 8 - Stream流骚操作解读

    文章目录 分类 中间操作 终端操作 使用Stream流 筛选和切片 用谓词筛选 filter 筛选各异的元素 distinct 截短流 limit 跳过元素 skip 映射 对流中每一个元素应用函数 ...

  9. java 8 stream()

    2019独角兽企业重金招聘Python工程师标准>>> 1. 流的基本概念 1.1 什么是流? 流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合. ...

最新文章

  1. 盘点程序员写过的惊天 Bug
  2. 推荐一位我的好朋友,8年码农,前鹅厂工程师!
  3. HTML5 表单 中
  4. java 中的对象序列化
  5. 计算机组成与结构PLA,计算机组成与结构.doc
  6. [刷题]算法竞赛入门经典(第2版) 5-2/UVa1594 - Ducci Sequence
  7. 武汉锅检所检测机器人_宿迁水上行走管道检测机器人CCTV-武汉天仪仪器
  8. Jsp+Ssh+Mysql实现的Java Web学生考勤管理
  9. Android开发笔记(一)像素的单位
  10. 安装centos linux7,安装centos7
  11. 二分法在生活中的一次应用
  12. java8编程开发入门 李兴华_李兴华系列--JAVA详解视频(jdk1.8)及项目实战教程
  13. Keras基础项目实践
  14. 在线字节转换工具G,M,Byte
  15. 从零开始构建 RPM 包
  16. 循环 计算机英语,计算机英语词汇解释
  17. 第七天 位置参数 变量运算if case || find locate compress
  18. 跑步时戴什么耳机好、分享五款最适合跑步的运动耳机排名清单
  19. AES种子秘钥构造一个完整的秘钥编排方案
  20. One PUNCH Man——变量显著性检验

热门文章

  1. 简单理解条件随机场CRF
  2. CC2530设置发射功率
  3. 企业级开源邮件系统搭建的全过程
  4. centos8安装nexus
  5. PC - CPU 为什么小小的一颗薄片,动辄数千元?
  6. Day6:Linux中文件权限及网络设置
  7. 为什么数据库字段要使用NOT NULL?
  8. kettle数据库查询
  9. 核密度函数构建联合概率密度函数
  10. SpringBoot:关于MultipartFile和File不得不说的那些事