Lambda表达式的相关内容以及基础使用

1、什么是Lambda表达式?
lambda表达式是一个匿名函数。
2、为什么使用Lambda表达式?
使用lambda表达式可以对一个接口实现非常简洁的实现。
3、Lambda表达式对接口的要求?
虽然可以使用Lambda表达式对某些接口进行简单的实现,但是并不是所有的接口都可以用Lambda表达式来实现。要求接口中定义的必须要实现的抽象方法只能是一个。

eg:

import java.util.function.IntConsumer;

public class TestFive {
    public static void main(String[] args) {
        /* 匿名内部类*/
        foreachArr(new IntConsumer() {
            @Override
            public void accept(int value) {
                System.out.print(value+"\t");
            } 
        });
        /*Lambda表达式*/
        foreachArr(value -> System.out.println(value));

    }

    public static void foreachArr(IntConsumer consumer){
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        for (int i : arr) {
            consumer.accept(i);
        }
    }
}

@FunctionalInterface 修饰函数式接口。即接口中的抽象方法有且仅有一个。

():用来描述参数列表
{} :用来描述方法体
->:lambda运算符,读作goes to。

  • 参数:由于在接口的抽象方法中,已经定义了参数的数量和类型。所以在lambda表达式中,参数的类型可以省略。(要省略全部都省略。不省略全部都不省略)

  • 参数小括号:参数列表中参数数量如果只有一个,小括号可以省略。

  • 方法大括号:如果方法体中只有一条语句,此时大括号可以省略。

  • 如果方法体中唯一的一条数据是一个返回语句,则在省略大括号的同时,也必须省略掉return。

Lambda是函数式编程思想的体现。关注参数以及方法体。
注意:

  • 参数数量和类型一定要和接口中定义的方法一致
  • 返回值的类型一定要和接口中定义的方法一致

表达的不太明确,希望你能看懂,我也是刚懂然后为了加深记忆才写下来的。希望能对你了解Lambda有所帮助 如果您对这了解的更多。希望您指正。

或者您可以看看这个视频:
链接: https://www.bilibili.com/video/BV1Gh41187uR?share_source=copy_web.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值