Java中的lambda表达式

Java中的Lambda表达式

Lambda表达式,也称为匿名函数,是从Java 8开始引入的功能,允许你将函数作为参数传递给方法。这对于函数式编程风格非常有用,可以让代码更简洁、更具表现力。

基本语法

Lambda表达式的语法如下:

复制代码
(parameters) -> expression

或者

复制代码
(parameters) -> {
    // block of code
}

其中:

  • parameters 是参数列表。
  • expressionblock of code 是执行体。
如何使用

Lambda表达式通常用来实现函数式接口(只有一个抽象方法的接口),如Runnable, Comparator等。

示例1:无参数的Lambda
复制代码
// 定义一个Runnable类型的变量r
Runnable r = () -> { // Lambda表达式,没有参数
    System.out.println("Hello Lambda!"); // 执行体,没有任何参数,仅打印一条信息
};
r.run(); // 调用run()方法,执行Lambda表达式中的代码
示例2:单参数的Lambda
复制代码
IntUnaryOperator increment = x -> x + 1; // 定义一个IntUnaryOperator类型,它是一个函数式接口,接受一个int参数并返回一个int值
System.out.println(increment.applyAsInt(5)); // 调用applyAsInt方法,传入参数5,输出结果为6
示例3:多参数的Lambda
复制代码
BiFunction<Integer, Integer, Integer> add = (x, y) -> x + y; // 定义一个BiFunction类型,它是一个函数式接口,接受两个Integer参数并返回一个Integer值
System.out.println(add.apply(10, 20)); // 调用apply方法,传入参数10和20,输出结果为30
方法引用
复制代码
List<String> names = Arrays.asList("John", "Jane", "Doe"); // 创建一个包含三个字符串的列表
names.sort(String::compareTo); // 利用方法引用String::compareTo对列表进行排序,这一方法比较字符串的自然顺序
System.out.println(names); // 输出排序后的列表
Streams API
复制代码
List<String> list = Arrays.asList("Apple", "Banana", "Cherry"); // 创建一个包含三个字符串的列表
long count = list.stream() // 获取列表的流
                 .filter(s -> s.startsWith("A")) // 过滤流中的元素,只保留以"A"开头的字符串
                 .count(); // 计算过滤后剩余的元素数量
System.out.println(count); // 输出计数结果
相关推荐
喜欢的名字被抢了5 分钟前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
小雨笙笙11 分钟前
C语言:变量三属性——存储类型
c语言·开发语言
数据知道1 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
果果燕1 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤1 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
2601_949950631 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
老洋葱Mr_Onion1 小时前
【C++】信息学奥赛CSP通关之路——CSP-J/S第一轮原创全真模拟试卷集(2026)卷四全卷解析
开发语言·c++
zander2582 小时前
LeetCode 739:每日温度——为什么单调栈要持续弹出
开发语言·python·算法
無限進步D2 小时前
Java 函数式编程(Lambda)
java·开发语言
rannn_1112 小时前
【力扣hot100】链表专题下|138、148、23、146
java·算法·leetcode·链表·开发