Java——lambda表达式

本文详细介绍了Java中的Lambda表达式,包括其语法、特点、分类和函数式接口。Lambda表达式用于将方法作为参数传递,简化代码。无参无返回值、有参无返回值、无参有返回值和有参有返回值是Lambda的四种类型。函数式接口是Lambda的基础,必须有且仅有一个抽象方法。四大函数式接口包括Consumer、Supplier、Predicate和Function。此外,还提到了方法引用和构造引用在简化代码中的应用。
摘要由CSDN通过智能技术生成

Lambda表达式的语法:

([Lambda参数列表,即形参列表]) -> {Lambda体,即方法体}

拷贝小括号,写死右箭头,落地大括号,大括号中写上业务逻辑

@Functionalnterface

default

静态方法

特点:使用 "->"将参数和实现逻辑分离;( ) 中的部分是需要传入Lambda体中的参数;{ } 中部分,接收来自 ( ) 中的参数,完成一定的功能。

Lambda表达式的分类

无参无返回值

package com.isea.java;
public class TestLambda {
    public static void main(String[] args) {
        new Thread(() -> System.out.println("Hello"));
    }
}

//()中无参数,也不能省略;{}中只有一句话,建议省略。

有参无返回值

package com.isea.java;
import java.util.ArrayList;
public class TestLambda {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("AAAAA");
        list.add("BBBBB");
        list.add("CCCCC");
        list.add("DDDDD");
//形参的类型是确定的,可省略;只有一个形参,()可以省略;
        list.forEach(t -> System.out.print(t + "\t"));
//或者更简洁的方法引用:list.forEach(System.out::println);
        //打印结果:AAAAA	BBBBB	CCCCC	DDDDD
    }
}
public void forEach(Consumer<? super E> action)

forEach() 功能等同与增强型for循环 这个方法来自于Iterable接口,Collection接口继承了这个接口,List又继承了Collection接口,而ArrayList是List的实现类;forEach函数,指明该函数需要传入一个函数,而且是有参数没有返回值的函数,而Consumer接口中正好有且仅有一个这样的有参无返回值的抽象方法。接下来,我们会了解到这是使用Lambda的必要条件。

void accept(T t);// from source code

无参有返回值

package com.isea.java;
import java.util.Random;
import java.util.stream.Stream;
public class TestLambda {
    public static void main(String[] args) {
        Random random = new Random();
        Stream<Integer> stream =
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值