2024年最新恕我直言你可能真的不会java第9篇-Stream元素的匹配与查找,带着问题深入学习Spring

最后

由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

isExistAgeThan70 = true;

break;

}

}




如果我们使用Stream API就是下面的一行代码,其中使用到了我们之前学过的"谓词逻辑"。



boolean isExistAgeThan70 = employees.stream().anyMatch(Employee.ageGreaterThan70);




将谓词逻辑换成lambda表达式也可以,代码如下:



boolean isExistAgeThan72 = employees.stream().anyMatch(e -> e.getAge() > 72);




所以,我们介绍了第一个匹配规则函数:anyMatch,判断Stream流中是否包含某一个“匹配规则”的元素。这个匹配规则可以是**lambda表达式**或者**谓词**。



二、其他匹配规则函数介绍

------------



*   是否所有员工的年龄都大于10岁?allMatch匹配规则函数:判断是够Stream流中的所有元素都**符合**某一个"匹配规则"。

    

    ```

    boolean isExistAgeThan10 = employees.stream().allMatch(e -> e.getAge() > 10);

    ```

    

*   是否不存在小于18岁的员工?noneMatch匹配规则函数:判断是否Stream流中的所有元素都**不符合**某一个"匹配规则"。

    

    ```

    boolean isExistAgeLess18 = employees.stream().noneMatch(e -> e.getAge() < 18);

    ```

    



三、元素查找与Optional

---------------



从列表中按照顺序查找第一个年龄大于40的员工。



Optional employeeOptional

    =  employees.stream().filter(e -> e.getAge() > 40).findFirst();

System.out.println(employeeOptional.get());




打印结果



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站观看地址]( )





# 面试题总结

**其它面试题(springboot、mybatis、并发、java中高级面试总结等)**

![](https://img-blog.csdnimg.cn/img_convert/d8ddf45bac5910143d17c5bff88e0b11.webp?x-oss-process=image/format,png)

![](https://img-blog.csdnimg.cn/img_convert/8bcc95985e5117cac7c8797a2fee2f6a.webp?x-oss-process=image/format,png)

![](https://img-blog.csdnimg.cn/img_convert/d2812a372bac99abe2c8c51235a48b86.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

//bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值