开发者社区> rr3paqhvizt6a> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Java8新特性-Lambda表达式

简介: Lambda表达式简化了我们代码开发,使得我们开发的代码看起来更加的简洁,所以我们需要学习这种更加规范、更加简洁的代码格式。
+关注继续查看

一、Lambda表达式



1、表达式定义


定义1


1.Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。


定义2


1.Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)


定义3


1.使用 Lambda 表达式可以使代码变的更加简洁紧凑。


2、语法格式


2.1、格式一:基本格式

() -> {};


小括号中为方法的入参,大括号中为方法的逻辑。


2.2、格式二:无参数,无返回值


() -> {System.out.println("Hello lambda!")};


2.3、格式三:有参数,无返回值


(x) -> {System.out.println("Hello lambda!")};


2.4、格式四:有多个参数,有返回值


(x,y) -> {
          return Integer.compare(x,y);
        };


2.5、格式四:单个参数,方法体单条语句


如果入参是单个参数,小括号可以省略,如果方法体逻辑是单行,大括号和return都可以省略


x -> System.out.println("Hello lambda!");


3、函数式接口


3.1、函数式接口


1.Lambda表达式需要“函数式接口”的支持,例如我们上面所有的代码单独放到idea中是无法编译通过的,如图


28.png


2.我们需要用一个函数式接口来接收,现在我们新建一个函数式接口


29.png


3.这时我们再用函数式接口来接收我们的lambda表达式就不会报错了


30.png


4.函数式接口是一个普通接口中只有一个接口方法,我们可以加上一个注解@FunctionalInterface


31.png


4、内置四大核心函数式接口


4.1、消费型接口


Consumer
        void accept(T t);


4.2、供给型接口


Supplier
        T get();


4.3、函数型接口


Function<T,R>
        R apply(T t);


4.4、断言型接口


Predicate
        boolean test(T t);


1.前面我们了解到lambda表达式需要函数式接口来接收,那我们为了一个方法再创建一个接口有点麻烦,所以java给我们内置了一些基础的函数式接口,比如上面我们定义的有一个入参没有返回值的接口可以替换成Consumer来使用


32.png


Consumer consumer = x -> System.out.println("Hello"+x);
        consumer.accept("张三");


5、小结


Lambda表达式简化了我们代码开发,使得我们开发的代码看起来更加的简洁,所以我们需要学习这种更加规范、更加简洁的代码格式。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java 8 新特性:Lambda 表达式
Java 8 新特性:Lambda 表达式
47 0
Java8.0新特性之Lambda表达式
  好程序员Java教程分享Java8.0新特性之Lambda表达式:Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。本篇文章,主要给大家介绍的是lambda表达式。 Lambda表达式 Lambda表达式(也称为闭包)是Java 8中最大和最令人期待的语言改变。
809 0
好程序员分享java8新特性之Lambda表达式
好程序员分享java8新特性之Lambda表达式 ⼀、Lambda表达式简介 什么是Lambda? Lambda表达式是Java 8推出的⼀个新特性。从本质上讲,Lambda表达式是⼀个匿名函数。 为什么要使⽤Lambda? 使⽤Lambda表达式可以对⼀个接⼝进⾏⾮常简洁的实现。
1413 0
Java8新特性之一:Lambda表达式
Java8新特性之一:Lambda表达式Java8是自java5之后最重大的一次更新,它给JAVA语言带来了很多新的特性(包括编译器、类库、工具类、JVM等),其中最重要的升级是它给我们带来了Lambda表达式和Stream API。
1099 0
java8新特性(二)_lambda表达式
最近一直找java8相关新特性的文章,发现都太没有一个连贯性,毕竟大家写博客肯定都有自己的侧重点,这里找到一本书,专门介绍java8新特性的,感觉大家可以看看《写给大忙人看的JavaSE8》.这里我会结合书中的知识以及网上的知识,对于java8 的新特性进行总结,当然我自己写的也会有自己的侧重点。
1397 0
Java 8 新特性(一)lambda表达式
Java 9 好像也快出了,不过我连Java 8的新特性都还没认真研究过,所以这几篇文章就是来介绍Java 8的新特性的。首先,第一个重要的特性就是传说中的lambda表达式了,虽然初学可能觉得这东西很难理解,但是一旦学会了,你就会发现离不开它了。
647 0
Java 8 新特性之 Lambda表达式
Lambda的出现就是为了增强Java面向过程编程的深度和灵活性。今天就来分享一下在Java中经常使用到的几个示例,通过对比分析,效果应该会更好。 – 1、实现Runnable线程案例 其存在的意义就是用Lambda来代替匿名类,如下: // before java 8...
986 0
一个使用Java Map.computeIfAbsents实现非波拉契(fibonacci)数列的列子
一个使用Java Map.computeIfAbsents实现非波拉契(fibonacci)数列的列子
23 0
一个Java实现的有道云笔记中包含的图片文件的批量下载工具
一个Java实现的有道云笔记中包含的图片文件的批量下载工具
53 0
163
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载