Java 8 Stream(五、Optional类和Stream调试)

本文详细介绍了Java 8中的Optional类,包括isPresent(), ifPresent(), orElse(), orElseGet(), get(), orElseThrow(), map(), flatMap()和filter()等方法的用法。此外,还讲解了在IntelliJ IDEA中如何设置断点和跟踪调试Stream,以帮助开发者更好地理解和使用Java 8 Stream。" 107363562,9582754,使用POST进行页面跳转的数据传递,"['javascript', '前端开发', 'HTTP方法', '数据传输']
摘要由CSDN通过智能技术生成

到现在为止我们已经介绍了Stream的所有操作,没看过的同学请出门左转 Java 8 Stream(四、Stream终端操作:forEach()、Match、find()、max、min()、reduce()、collect()、toArray()、count())



最后我们介绍一下Optional类和IDEA下的Stream调试。

一、Optional类

(一)简介

Optional类是Java 8 引入的一个为避免空指针异常(NullPointerException)的包装类。这意味着Optional类即可以包含对象也可以为NULL。

(二)常用方法

1、isPresent()

说明: 判断Optional实例是否为空,如果非空则返回true。
示例:

System.out.println(Arrays.asList("1", "2", "3").stream().filter(x -> x.equals("3")).findAny().isPresent());    // true

2、ifPresent()

说明: 该方法也可以判断Optional实例是否为空。不同的是,该方法接受一个函数式接口Consumer<T>为入参,如果非空则执行该函数。
示例:

Arrays.asList("1", "2", "3").stream().filter(x -> x.equals("3")).findAny().ifPresent(System.out::println);    // 3

3、orElse()

说明: 返回Optional实例的值,如果为空返回传递的默认值。需要特别注意的是,orElse()是热情计算的,即无论实例值是否为空,默认值均将被计算得出,在高并发情况下这将对性能产生较大影响,因此推荐使用下面的orElseGet() 方法——它是惰性计算的
示例:

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值