java stream 查找,java 集合 stream

  java stream 查找,java 集合 stream

  00-1010 I .对比一下有多简单。二。其他匹配规则函数介绍。三。元素查找和可选

  当我们对数组或集合类进行操作时,我们经常会遇到这样的需求,比如:

  是否包含某个匹配规则的元素?所有元素都符合某个匹配规则吗?是不是所有元素都不符合某个匹配规则?找到符合匹配规则的第一个元素,找到任何符合匹配规则的元素。如果把这些要求写在for循环里,还是比较麻烦的,需要使用for循环和break!本节介绍如何使用Stream API实现“查找匹配”。

  

目录

employees是10个employee对象的列表。我们在前面的章节中已经多次使用过,所以这里不列出代码。

 

  如果不使用Stream API实现,是否可以发现员工列表中是否包含70岁以上的员工?代码如下:

  boolean isExistAgeThan70=falsefor(Employee Employee : employees){ if(Employee . getage()70){ isexistagethan 70=true;打破;}}如果我们用Stream API,就是下面这一行代码,用的是我们之前学过的‘谓词逻辑’。

  boolean isexistagethan 70=employees . stream()。any match(employee . agegreaterthan 70);还可以使用以下代码将谓词逻辑更改为lambda表达式:

  boolean isexistagethan 72=employees . stream()。any match(e-e . getage()72);因此,我们引入第一个匹配规则函数:anyMatch,它决定流中是否包含某个“匹配规则”的元素。这个匹配规则可以是lambda表达式或谓词。

  00-1010都是10岁以上的员工吗?AllMatch rule函数:判断流中的所有元素都满足某个‘匹配规则’。

  boolean isexistagethan 10=employees . stream()。all match(e-e . getage()10);没有18岁以下的员工吗?NoneMatch rule function of none:确定流中的所有元素是否都不满足某个“匹配规则”。

  boolean isexistageless 18=employees . stream()。none match(e-e . getage()18);

  00-1010从列表中按顺序查找第一个40岁以上的员工。

  optional employee employee optional=employees . stream()。过滤器(e - e.getAge() 40)。findFirst();system . out . println(employee optional . get());打印结果

  雇员(id=3,年龄=43,性别=M,名字=Ricky,姓氏=Martin)

  可选类表示值的存在或不存在。java8中引入的,这样就不用返回null了。

  如果Optional包含值,IsPresent()将返回true,否则将返回false。

  当值存在时,IfPresent(消费者块)将执行给定的代码块。在第三章中,我们介绍了消费者功能接口;它允许您传递一个Lambda表达式,该表达式接收一个T类型参数并返回void。

  当值存在时Get()将返回值,否则?存在NoSuchElement异常。

  否则(thother)将在值存在时返回值,否则将返回默认值。

  请看关于Optinal各种功能的视频!哔哩哔哩观看地址

  FindFirst用于查找满足匹配规则的第一个元素,返回值可选。

  Finy用于查找任何符合“匹配规则”的元素,返回值是可选的。

  以上是流元素匹配和搜索的细节,是java理论的基础。更多关于java流元素匹配和搜索的信息,请关注大众IT的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: