领取MOLI红包
你的位置:Lattice Token中文网 > PLB中文网 >

java理论基础Stream元素的匹配与查找

  • 发布日期:2025-01-03 18:55    点击次数:159
  • 在我们对数组或者集合类进行操作的时候,经常会遇到这样的需求,比如: 是否包含某一个“匹配规则”的元素是否所有的元素都符合某一个“匹配规则”是否所有元素都不符合某一个“匹配规则”查找第一个符合“匹配规则”的元素查找任意一个符合“匹配规则”的元素 这些需求如果用for循环去写的话,还是比较麻烦的,需要使用到for循环和break!本节就介绍一个如何用Stream API来实现“查找与匹配”。 一、对比一下有多简单 employees是10个员工对象组成的List,在前面的章节中我们已经用过多次,这里不再列出代码。 如果我们不用Stream API实现,查找员工列表中是否包含年龄大于70的员工?代码如下: 如果我们使用Stream API就是下面的一行代码,其中使用到了我们之前学过的"谓词逻辑"。 将谓词逻辑换成lambda表达式也可以,代码如下: 所以,我们介绍了第一个匹配规则函数:anyMatch,判断Stream流中是否包含某一个“匹配规则”的元素。这个匹配规则可以是lambda表达式或者谓词。 二、其他匹配规则函数介绍 是否所有员工的年龄都大于10岁?allMatch匹配规则函数:判断是够Stream流中的所有元素都符合某一个"匹配规则"。 是否不存在小于18岁的员工?noneMatch匹配规则函数:判断是否Stream流中的所有元素都不符合某一个"匹配规则"。 三、元素查找与Optional 从列表中按照顺序查找第一个年龄大于40的员工。 打印结果 Employee(id=3, age=43, gender=M, firstName=Ricky, lastName=Martin) Optional类代表一个值存在或者不存在。在java8中引入,这样就不用返回null了。 isPresent() 将在 Optional 包含值的时候返回 true , 否则返回 false 。 ifPresent(Consumer block) 会在值存在的时候执行给定的代码块。我们在第3章 介绍了 Consumer 函数式接口;它让你传递一个接收 T 类型参数,并返回 void 的Lambda 表达式。 T get() 会在值存在时返回值,否则?出一个 NoSuchElement 异常。 T orElse(T other) 会在值存在时返回值,否则返回一个默认值。 关于Optinal的各种函数用法请观看视频!B站观看地址 findFirst用于查找第一个符合“匹配规则”的元素,返回值为Optional findAny用于查找任意一个符合“匹配规则”的元素,返回值为Optional 以上就是java理论基础Stream元素的匹配与查找的详细内容,更多关于java Stream元素匹配与查找的资料请关注脚本之家其它相关文章!



    Powered by Lattice Token中文网 @2013-2022 RSS地图 HTML地图

    Copyright Powered by站群系统 © 2013-2024