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

Java中Lambda 表达式的解释

从 Java 8 开始,Lambda 表达式成为 Java 的一等公民。它不仅让代码更简洁,还为函数式编程打开了大门。如果你还没真正理解或使用过 Lambda,这篇文章就是为你写的。

一、什么是 Lambda 表达式?

Lambda 表达式是 Java 中的一种匿名函数写法,可以把函数作为参数传递。
它的作用就是:用更简洁的方式实现接口中的唯一抽象方法(即函数式接口)。

我觉得需要强调的是:只要这个接口满足 只包含一个抽象方法,就可以是函数式接口,即使它没有加 @FunctionalInterface 注解!!!

二、 基本语法

(参数列表) -> { 方法体 }

常见形式:

示例含义
() -> System.out.println("Hello")无参无返回值
(x) -> x * x单个参数有返回
(a, b) -> a + b多个参数返回结果
(x, y) -> { return x * y; }有代码块时用 {}

三、 使用 Lambda 的前提:函数式接口

Lambda 表达式只能用于函数式接口,即只包含一个抽象方法的接口。

Java 提供了许多常用的函数式接口,比如:

接口方法签名说明
Runnablevoid run()无参无返回值
Consumer<T>void accept(T t)消费一个值
Supplier<T>T get()提供一个值
Function<T,R>R apply(T t)转换/映射值
Predicate<T>boolean test(T t)条件判断

四、Lambda 的代码的示例

List<String> list = Arrays.asList("banana", "apple", "kiwi");// 按字符串长度排序
list.sort((s1, s2) -> s1.length() - s2.length());System.out.println(list); // [kiwi, apple, banana]

http://www.dtcms.com/a/312078.html

相关文章:

  • PCB铜浆塞孔工艺流程
  • 如何快速解决PDF解密新方法?
  • 使用C++实现日志(1)
  • 疏老师-python训练营-Day33 MLP神经网络的训练
  • AbstractExecutorService:Java并发核心模板解析
  • 深入 Go 底层原理(一):Slice 的实现剖析
  • 二叉树链式结构的实现
  • lesson31:Python异常处理完全指南:从基础到高级实践
  • 乌鸫科技前端二面
  • Go语言中的闭包详解
  • OpenCV学习 day3
  • stm32是如何实现电源控制的?
  • 如何防止内存攻击(Buffer Overflow, ROP)
  • 髋臼方向的定义与测量-I
  • u-boot启动过程(NXP6ULL)
  • android studio 安装Flutter
  • WD5208S,12V500MA,应用于小家电电源工业控制领域
  • Kubernetes 构建高可用、高性能 Redis 集群实战指南
  • #C语言——学习攻略:探索字符函数和字符串函数(一)--字符分类函数,字符转换函数,strlen,strcpy,strcat函数的使用和模拟实现
  • 数据库理论
  • 【MATLAB】(五)向量
  • 变量筛选—随机森林特征重要性
  • windows@Path环境变量中同名可执行文件优先级竞争问题@Scoop安装软件命令行启动存在同名竞争问题的解决
  • 解决 InputStream 只能读取一次问题
  • Java语言核心特性全解析:从面向对象到跨平台原理
  • Docker--将非root用户添加docker用户组,解决频繁sudo执行输入密码的问题
  • 【动态规划 | 子序列问题】子序列问题的最优解:动态规划方法详解
  • RK628F HDMI-IN调试:应用接口使用
  • Vulnhub ELECTRICAL靶机复现(附提权)
  • QPainter::CompositionMode解析