码迷,mamicode.com
首页 > 其他好文 > 详细

lambda表达式与函数式(FunctionalInterface)接口

时间:2020-07-02 13:36:35      阅读:46      评论:0      收藏:0      [点我收藏+]

标签:接口   返回值   代码   lang   数据类型   loading   数列   一段   表达   

一、lambda表达式

lambda表达式

Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。

lambda表达式的使用

1、举例:

(o1,o2)->Integer.compare(o1,o2);

2、格式:

Lambda 表达式:在Java 8 语言中引入的一种新的语法元素和操作符。这个操作符为 “->” , 该操作符被称为Lambda 操作符箭头操作符。它将 Lambda 分为两个部分:

左侧:指定了 Lambda 表达式需要的参数列表

右侧:指定了 Lambda ,是抽象方法的实现逻辑,也即 Lambda 表达式要执行的功能

3、语法格式(6种情况)

语法格式一:无参数,无返回值

Runnable r1 = ()->{System.out.println("lambda")};

语法格式二:需要一个参数,无返回值

Consumer <String> con = (String s)->{
            System.out.println(s);
        };

语法格式三:数据类型可省略,因为可由编译器推断得出,称为==类型推断==

Consumer <String> con = (s)->{
            System.out.println(s);
        };

语法格式四:lambda若只需要一个参数,参数的小括号可以省略

Consumer <String> con = s->{
            System.out.println(s);
        };

语法格式五:语法格式五:lambda 需要有两个以上的参数,多条执行语句,并可以有返回

Comparator<Integer> com2 = (o1,o2)->{
            System.out.println(o1);
            System.out.println(o2);
            return Integer.compare(o1,o2) ;
        };

语法格式六:当lambda体只有一条语句时,return 与大括号若有可以省略

Comparator<Integer> com2 = (o1,o2)->Integer.compare(o1,o2);

4、lambda表达式的本质

? 作为左边接口的实例,只能用于函数式接口.

? 通常用于代替匿名内部类的实现

二、函数式接口

定义:只包含一个抽象方法的接口,称为函数式接口

可以通过@FunctionalInterface注解来验证它是否为一个函数式接口。

1、java四大核心函数式接口

技术图片

2、其它接口

技术图片

lambda表达式与函数式(FunctionalInterface)接口

标签:接口   返回值   代码   lang   数据类型   loading   数列   一段   表达   

原文地址:https://www.cnblogs.com/polary/p/13223992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!