Lambda表达式方法引用举例

简介: Lambda表达式方法引用举例

Lambda表达式引入

假设我们现在有一个遍历集合List的需求

a.首先我们通过Lambda表达式的写法实现:

代码如下(示例):

public class MyLambdaTest {
    public static void main(String[] args) {
        List<String> stringList = Arrays.asList("肌肉猿","肌肉猿爱编程","程序员非晚");
        stringList.forEach(s -> {
            System.out.println(s);
        });
    }

程序运行结果:

b.我们通过匿名内部类的形式实现程序运行结果

public class MyLambdaTest2 {
    public static void main(String[] args) {
        List<String> stringList = Arrays.asList("肌肉猿","肌肉猿爱编程","程序员非晚");
        // 通过匿名内部类的形式替代Lambda表达式
        stringList.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
    }
}


程序运行结果:

上述代码分析:

foreach()方法是Iterable接口的一个默认方法,在下面的方法的参数列表中我们可以知道,该方法需要一个Consumer类型的参数,方法体的内容则是一个for循环,进行对每一个对象的便利,最终处理方法则是调用accept()方法。

default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

当我们继续查看Consumer的accept(T)方法,我们不难得出Consumer是一个函数式接口(该接口的详细讲解见我专栏里的文章有详解)。

目录
相关文章
|
7月前
|
前端开发
62 # 借用 promise 写成类的方法
62 # 借用 promise 写成类的方法
16 0
|
7月前
|
分布式计算 Java 数据安全/隐私保护
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(下 )
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(下)
33 0
|
2月前
|
C#
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
|
2月前
|
JavaScript 前端开发 Java
23、匿名类的排序、Lambda 表达式、方法引用
23、匿名类的排序、Lambda 表达式、方法引用
17 0
|
5月前
|
Java
【Java方法重载】 定义,使用,理解,示例解读
【Java方法重载】 定义,使用,理解,示例解读
|
5月前
|
Java
【Java代码】使用双冒号 :: 简洁代码及方法引用(静态方法+构造方法+实例方法+函数式编程举例)
【Java代码】使用双冒号 :: 简洁代码及方法引用(静态方法+构造方法+实例方法+函数式编程举例)
29 0
|
7月前
|
Java Kotlin
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(上)
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(上)
33 0
|
9月前
|
存储 Java 开发者
1.1 Lambda表达式的基础:Lambda表达式的定义与语法
1.1 Lambda表达式的基础:Lambda表达式的定义与语法
62 0
|
12月前
|
存储 程序员 API
python中lambda表达式与函数,函数传参、引用、作用范围、函数文档
python中lambda表达式与函数,函数传参、引用、作用范围、函数文档
112 0
|
Java
Java: 函数式接口双冒号::实现方法引用,传递方法作为函数参数
Java: 函数式接口双冒号::实现方法引用,传递方法作为函数参数
150 0