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

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::方法名

相关文章:

  • 线程相关面试题
  • JSCH使用SFTP详细教程
  • 【小红书】API接口,获取笔记列表
  • H.264编码
  • 深拷贝与浅拷贝的区别?如何手写实现一个深拷贝?
  • 基于51单片机和8X8点阵屏、独立按键的填充消除类小游戏
  • Linux操作系统-命令基础
  • 【leetcode-两数之和】
  • el-select 实现分页加载,切换也数滚回到顶部,自定义高度
  • MAU算法流程理解
  • 剑指offer14_二进制中1的个数
  • Nginx 的配置文件
  • VBA模拟进度条
  • 谈C语言变量的作用域,加深对全局变量和局部变量的理解
  • 【判断酒酒花数】2022-3-31
  • 对数正态分布LogNormal
  • DDD 到底是什么? 它试图解决什么核心问题?
  • Day-15【选择与循环】选择结构-if语句
  • 海盗64位GameServer的使用体验
  • 访谈 | 吴恩达全景解读 AI Agents 发展现状:多智能体、工具生态、评估体系、语音栈、Vibe Coding 及创业建议一文尽览
  • 西安网站建设qq群号/开鲁seo网站
  • 桂林北站到象鼻山景区怎么坐车/爱网站关键词查询工具长尾
  • 深圳哪个做网站好优化/东莞网站优化
  • 免费注册网站/优化方案电子版
  • 深圳设计网站培训班/网站快速排名服务
  • 网站建设流程图viso/9个广州seo推广神技