行业资讯 2025年08月6日
0 收藏 0 点赞 894 浏览 978 个字
摘要 :

文章目录 1.Stream的findFirst()方法 2.Stream的findFirst()示例 3.Stream的findFirst()与findAny()比较 findFirst()方法返回一个Optional对象,描述了给定流中的第一……




  • 1.Stream的findFirst()方法
  • 2.Stream的findFirst()示例
  • 3.Stream的findFirst()与findAny()比较

findFirst()方法返回一个Optional对象,描述了给定流中的第一个元素(如果流非空),否则返回一个空的Optional对象(如果流为空)。

1.Stream的findFirst()方法

Optional<T> findFirst()
  • findAny()方法是终端的短路操作,而findFirst()方法返回一个Optional对象。
  • 如果流非空,Optional对象包含作为给定流的第一个元素的值;
  • 如果流为空,Optional对象包含空值。
  • 如果选定的元素为null,将抛出NullPointerException。
  • 如果流具有定义的遭遇顺序,则findFirst()按遭遇顺序返回第一个元素。如果流没有遭遇顺序,则findFirst()可返回任何元素。
  • 这种行为适用于所有顺序流和并行流,findFirst()的行为不会因流的并行性而改变。

2.Stream的findFirst()示例

在给定示例中,我们从流中获取第一个元素。一旦我们获得了第一个元素,流操作就会移动到ifPresent()方法中。我们使用方法引用在ifPresent()方法内部打印第一个元素。

public class Main 
{
  public static void main(String[] args) 
  {
    //有序流
    Stream.of(\"one\", \"two\", \"three\", \"four\")
        .findFirst()
        .ifPresent(System.out::println);
     
    //并行流
    Stream.of(\"one\", \"two\", \"three\", \"four\")
      .parallel()
      .findFirst()
      .ifPresent(System.out::println);
  }
}

输出:

one
one

3.Stream的findFirst()与findAny()比较

在非并行流中,大多数情况下findFirst()和findAny()都可能返回流的第一个元素,但findAny()不保证这种行为。使用findAny()可以更快地从任何并行流中获取任何元素。否则,在大多数情况下,我们始终可以使用findFirst()。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9589.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号