Lambda表达式

本文介绍了函数式编程的概念,重点讲解了Java 8中的Lambda表达式,它简化了匿名内部类的使用,特别是对于函数式接口。Lambda表达式可以省略参数类型和大括号,当方法体只有一行时。通过实例展示了Lambda的运用,总结了其在代码简洁性上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 函数式编程

函数式编程(Functional programming)是一种思想特点。

在面向对象当中,我们先找对象,让对象做事情。例如下面的数组排序。

image-20220915201906960

函数式编程思想,忽略面向对象的复杂语法,强调做什么,而不是谁去做

image-20220915202752372

Lambda表达式就是函数式思想的体现。

2. Lambda表达式

Lambda表达式是JDK8开始后的一种新的语法形式。

image-20220915203117314

注意点:

  1. Lambda表达式可以用来简化匿名内部类的书写

  2. Lambda表达式只能简化函数式接口的匿名内部类的写法

  3. 函数式接口

    有且仅有一个抽象方法的接口叫作函数式接口,接口上方可以加**@FuunctionalInterface**注解

2.1 匿名内部类

我们知道调用一个方法时,如果方法的形参是一个接口,那么我们要传递这个接口的实现类对象。而如果实现类对象只要用到一次,我们没有必要新建一个类实现该接口,可以使用匿名内部类的形式进行书写。

//一个接口
interface Swim {
    public abstarct void swimming();
}
//定义一个方法method,形参为上面的接口
public static void method(Swim s) {
    s.swimming();
}

image-20220915205738459

2.2 Lambda表达式改写

函数式接口:有且仅有一个抽象方法的接口叫作

image-20220915210336551

image-20220915210946082

image-20220915210533031

2.3 Lambda表达式的省略写法

省略规则:

  1. 参数类型可以省略
  2. 如果只有一个参数,参数类型可以省略,同时()也可以省略
  3. 如果Lambda表达式的方法体只有一行,大括号、分好、return可以省略不写。需要同时省略

image-20220915211626595

image-20220915211815824

2.4 简单实例

image-20220915212223933

image-20220915212416525

image-20220915212510255

3. 总结

内容来自黑马程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就是搞笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值