news 2026/5/3 21:15:55

JDK8:Lambda、Stream、函数式接口、Optional

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JDK8:Lambda、Stream、函数式接口、Optional

一、Lambda 表达式

作用

简化匿名内部类写法,替代单行接口实现,让代码更简洁优雅。

语法

java

运行

(参数列表) -> 方法体

特点

  1. 可省略参数类型、小括号、大括号、return
  2. 只能用于函数式接口
  3. 支持访问局部变量(隐式 final)

示例

java

运行

// 传统写法 Runnable r1 = new Runnable() { @Override public void run() { System.out.println("传统线程"); } }; // Lambda写法 Runnable r2 = () -> System.out.println("Lambda线程");

二、函数式接口

定义

有且仅有一个抽象方法的接口,可被 Lambda 使用。

核心注解

@FunctionalInterface强制校验是否为函数式接口

JDK8 内置四大核心接口

  1. Consumer<T> 消费型:有参无返回
  2. Supplier<T> 供给型:无参有返回
  3. Function<T,R> 函数型:有参有返回
  4. Predicate<T> 断言型:有参,返回布尔值

三、Stream 流

作用

集合、数组流式计算:遍历、过滤、排序、映射、统计、聚合,替代繁琐循环。

三阶段

  1. 创建流:集合.stream () / Arrays.stream ()
  2. 中间操作:filter、map、sorted、limit(延迟执行)
  3. 终端操作:forEach、collect、count、max(触发执行)

常用示例

java

运行

list.stream() .filter(x -> x > 10) // 过滤 .map(x -> x * 2) // 映射 .sorted() // 排序 .forEach(System.out::println); // 遍历输出

特点

  • 不修改原集合
  • 中间操作链式调用,惰性求值
  • 支持并行流parallelStream()

四、Optional 类

作用

解决空指针 NullPointerException,优雅判空,替代大量 if (null != obj)。

常用方法

  • Optional.ofNullable(obj)构建可空对象
  • isPresent()判断是否非空
  • orElse()为空给默认值
  • orElseGet()为空执行逻辑
  • ifPresent()非空才执行操作

示例

java

运行

String name = null; Optional.ofNullable(name) .ifPresent(System.out::println);

一句话串联记忆

函数式接口是基础,Lambda 简化写法;Stream 做集合流式处理,Optional 专治空指针。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 21:14:29

C++ STL 容器 + 算法 完整版精讲

一、STL 整体组成STL 六大组件&#xff1a;容器、算法、迭代器、仿函数、适配器、空间配置器核心就两块&#xff1a;容器存数据&#xff0c;算法做处理&#xff0c;迭代器当桥梁二、STL 容器分类&#xff08;三大类&#xff09;1. 序列式容器&#xff08;有序、可重复&#xff…

作者头像 李华
网站建设 2026/5/3 21:14:21

macos 26.2 将微信安装到移动硬盘

一、前言 之前参考https://blog.csdn.net/qq_39921135/article/details/146149096文章把微信迁移到了外接磁盘&#xff0c;内置硬盘秒变小很多&#xff0c;看到磁盘变小了&#xff0c;手贱从 macOS 14.4.1 -> macOS 26.2 ,中间两年没更新系统了&#xff0c;更新完26.2就后…

作者头像 李华
网站建设 2026/5/3 21:07:25

Python模型配置“幽灵bug”终极排查法:从__dict__污染到BaseSettings缓存陷阱(仅限内部团队流传的7层调用栈分析法)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Python模型配置的隐性风险全景图 Python 模型配置看似简单&#xff0c;实则潜藏大量易被忽视的隐性风险——从环境依赖冲突到序列化不兼容&#xff0c;从硬编码路径泄露到配置加载顺序错误&#xff0c;…

作者头像 李华
网站建设 2026/5/3 21:04:26

三步开启本地弹幕视频新时代:BiliLocal终极使用指南

三步开启本地弹幕视频新时代&#xff1a;BiliLocal终极使用指南 【免费下载链接】BiliLocal add danmaku to local videos 项目地址: https://gitcode.com/gh_mirrors/bi/BiliLocal 还在为离线观看视频时缺少弹幕互动而烦恼吗&#xff1f;BiliLocal本地弹幕播放器正是你…

作者头像 李华