JDK新特性之Lambda箭头函数

一、Lambda 箭头函数

在 JDK 8 之后,Lambda 表达式和箭头函数(Lambda Arrow Function)的引⼊极⼤地提升了 Java 语 ⾔的简洁性。

它允许我们以简洁的⽅式表示匿名函数(即没有名称的函数)。

Lambda 表达式的基本语法是 (parameters) -> expression (parameters) -> { statements; }

用途:

1、简化代码:特别是在处理集合类时,Lambda 表达式可以避免冗⻓的循环和条件语句,使代码更简 洁。

2、⽀持函数式编程:Lambda 表达式与函数式接⼝结合,使得 Java 更好地⽀持函数式编程范式。

3、并⾏处理:与 Java 8 引⼊的 Stream API 结合,Lambda 表达式可以实现更⽅便的并⾏处理。

 案例 : 使⽤ Lambda 表达式遍历 List 集合并打印元素

List<String> list = Arrays.asList("apple", "banana", "orange");  
list.forEach(str -> System.out.println(str));

二、Lambda 表达式的详细讲解

语法基础: 

箭头操作符: -> 是 Lambda 表达式的核⼼,它将参数列表和函数体分隔开。

参数列表:可以是明确类型的参数,也可以根据上下⽂推断类型(即类型推断)。

函数体:可以是单个表达式(返回该表达式的值),也可以是多条语句(⽤花括号包围)。

第⼀部分为括号内⽤逗号分隔的形式参数,参数是函数式接⼝⾥⾯⽅法的参数;
第⼆部分为⼀个箭头符号:->;
第三部分为⽅法体,可以是表达式和代码块
参数列表 :
 括号中参数列表的数据类型可以省略不写
 括号中的参数只有⼀个,那么参数类型和()都可以省略不写
⽅法体:如果{}中的代码只有⼀⾏,⽆论有返回值,可以省略{}、return、分号 要⼀起省略,其他则需
要加上

三、函数式接口

Lambda 表达式需要函数式接⼝的⽀持。函数式接⼝是只包含⼀个抽象⽅法的接⼝。

@FunctionalInterface 注解⽤于表明接⼝是函数式接⼝ (不是必须的,但加上这个注解可以增 加代码的可读性)

示例

⽆参数、⽆返回值的 Lambda 表达式: () -> System.out.println("Hello, Lambda!")

接收⼀个参数并返回其值的 Lambda 表达式: (x) -> x 或 (Integer x) -> x (类型可以推 断)

接收两个参数并返回它们的和的 Lambda 表达式: (x, y) -> x + y

案例实战(集合容器⾥⾯的字符串排序: 使⽤ Lambda 表达式替换匿名类实现接⼝):

//使⽤ Lambda 表达式的⽅式:
public static void main(String[] args) {
       List<String> list =Arrays.asList("aaa","ggg","ffff","ccc");
       Collections.sort(list, (a,b)->b.compareTo(a)
       );
       for (String string : list) {
           System.out.println(string);
       }
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值