JAVA8之Lambda表达式

本文介绍了Lambda表达式的基本概念和使用方式,包括其作为代码块传递的特性、函数接口的依赖以及如何简化抽象方法的实现。通过实例展示了无参数和有参数的Lambda表达式,以及在集合排序中的应用。此外,还提到了Java8内置的函数接口,为开发者提供了更便捷的操作方式。
摘要由CSDN通过智能技术生成

今天刚自学了lambda表达式的运用,简单用白话写个总结。

适用于有java基础的人学习参考。

首先什么是Lambda表达式?

就是一种表达式的写法,作用就是通过传参的方式传递代码块,去实现抽象方法。

格式:(参数) -> {代码块}

什么时候需要传递代码?

抽象方法这个概念有基础的应该都知道,它在定义的时候是不需要方法体的。常规操作都是通过继承抽象类或者实现接口的方式去实现抽象方法。而lambda表达式的作用就是我们不需要使用一个新类去继承实现,而仅通过表达式就可以实现抽象方法。可以理解为匿名内部类的一种新的写法。区别是,lambda表达式是依托于函数接口存在的

什么是函数接口?

我们定义一个接口,并且该接口中有且仅有一个抽象方法,这个接口就是函数接口。

为什么lambda表达式要依托于函数接口?

因为lambda表达式会默认去找对应接口的唯一方法,如果不是函数接口,接口里面有多个方法,表达式不知道应该去找哪个,会报错。

怎么使用?

举个例子:

首先我们创建一个函数接口,这里举例有String类型返回值,但是没有参数的函数接口。

 传统操作,如果我们要使用这个接口,需要去写实现类实现这个接口,重写get方法,然后在使用的时候,去创建一个这个接口的子类对象,通过对象调用方法,但是有了lambda表达式就方便了很多,如下:

实现:

结果:

 

 这段代码就相当于,我们重写了接口中的get方法,内容是 return "test";

因为当前我定义的函数接口中没有参数,但是有返回值,而且在实现方法的时候只有一行表达式代码,可以省略return,所以可以简写成 () -> "test"。

再举一个有参数有返回值的例子(我这里就写的齐全一点,方便大家参考,我特意写成两行实现代码,两行需要使用{}括起来):

函数接口:

 实现:

结果:

 

再举一个开发中可能会用到的例子,比如我们给集合进行排序,传统操作是调用sort方法,参数中使用Comparator
匿名内部类,然后在内部类中定义排序规则进行排序。而恰巧Comparator就是一个函数接口,我们可以直接通过lambda表达式对其中的compare方法进行实现。上代码:

传统写法:

 

lambda表达式写法:

输出结果:

 

 是不是很简单,以上是我们自己定义了一个函数接口,然后又自己去通过lambda实现方法 。其实java8为了方便我们操作,给我们内置了常用的函数接口,需要的可以自行百度。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值