当前位置: 首页 > article >正文

Java复习Day26

Lambda表达式简介

Lambda表达式是Java 8的重要特性,允许使用简洁的表达式代替功能接口。它类似于方法,包含参数列表和执行主体(可以是表达式或代码块)。Lambda可以视为匿名内部类的语法糖,也被称为闭包。

优点

  • 代码简洁,开发效率高
  • 支持函数式编程
  • 简化过滤和计算操作
  • 优化集合类操作

缺点

  • 代码可读性降低
  • 调试难度增加
  • 在非并行计算中性能可能不如传统for循环

Lambda语法

基本语法:

(parameters) -> expression
(parameters) -> {statements;}

组成结构:

  1. parameters:类似方法的形参列表,可以显式声明类型或由JVM推断
  2. ->:表示"被用于"
  3. 方法体:可以是表达式或代码块,可返回值或不返回值

JDK核心函数式接口

四大核心接口

接口名类型抽象方法
Consumer<T>消费型接口void accept(T t)
Supplier<T>供给型接口T get()
Function<T,R>函数型接口R apply(T t)
Predicate<T>断言型接口boolean test(T t)

其他常用接口

接口名类型抽象方法
BiConsumer<T,U>消费型接口void accept(T t,U u)
BiFunction<T,U,R>函数型接口R apply(T t,U u)
UnaryOperator<T>函数型接口T apply(T t)
BinaryOperator<T>函数型接口T apply(T t,T t1)
ToIntFunction<T>函数型接口int applyAsInt(T t)
ToDoubleFunction<T>函数型接口double applyAsDouble(T t)
IntFunction<R>函数型接口R apply(int i)
DoubleFunction<R>函数型接口R apply(double d)

方法引用

当Lambda表达式中的功能已有方法实现时,可以使用方法引用。要求参数列表和返回值类型与函数式接口的抽象方法一致。

语法格式:

  • 静态方法引用:类名::静态方法名
  • 实例方法引用:实例对象名::实例方法名
  • 特殊方法引用:类名::实例方法名
  • 构造方法引用:类名::new
  • 数组引用:数组类型[]::new
  • this和super引用:this::方法名 / super::方法名
http://www.lryc.cn/news/2398332.html

相关文章:

  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.5 R语言解题
  • 阿里云百炼全解析:一站式大模型开发平台的架构与行业实践
  • 字节新出的MCP应用DeepSearch,有点意思。
  • ​​Agentic Voice Stack 热门项目
  • 机器学习在多介质环境中多污染物空间预测的应用研究
  • 期货反向跟单运营逻辑推导思路
  • 使用 HTML + JavaScript 实现图片裁剪上传功能
  • Redis 缓存粒度如何控制?缓存整个对象还是部分字段?
  • 【灵动Mini-F5265-OB】vscode+gcc工程创建、下载、调试
  • 程序设计实践期末考试模拟题(1)
  • 现代语言模型中的分词算法全解:从基础到高级
  • HttpServletResponse 对象用来做什么?
  • 第十三章 Java基础-特殊处理
  • MTK的Download agent是什么下载程序?
  • ArcGIS Pro 3.4 二次开发 - 地图创作 2
  • 【操作系统原理08】文件管理
  • 图论学习笔记 5 - 最小树形图
  • VueUse:组合式API实用函数全集
  • 《自动驾驶轨迹规划实战:Lattice Planner实现避障路径生成(附可运行Python代码)》—— 零基础实现基于离散优化的避障路径规划
  • 嵌入式笔试题+面试题
  • 【Go语言生态】
  • PyTorch——卷积操作(2)
  • 【JavaWeb】SpringBoot原理
  • BSRR对比BRR对比ODR
  • ubuntu22.04安装taskfile
  • 记录被mybatis一级缓存坑的问题
  • 遥感影像建筑物变化检测
  • 【数据库】《DBA实战手记》- 读书笔记
  • 多模态大语言模型arxiv论文略读(103)
  • 汇编语言基础: 搭建实验环境