Lambda 表达式

Lambda

语法:->
左侧:Lambda表达式的参数列表
右侧:Lambda 表达式中所需执行的功能,即Lambda体

注意:
(Integer x,Integer y)括号里的数据类型可以省略不写
JVM可以通过上下文推断出数据类型,即" 类型推断 "

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

() -> System.out.println(“Hello Lambda!”);

示例:

接口:

package com.example.learnlambda.dao;

public interface Interface {
    void noParamNoReturned();
}
测试类:

package com.example.learnlambda.test;

import com.example.learnlambda.dao.Interface;

public class Test {
    public static void main(String[] args) {

        Interface inter = () -> System.out.println("Hello Lambda");
        inter.noParamNoReturned();

    }
}

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

(x) -> System.out.println(x);

示例:

接口:

package com.example.learnlambda.dao;

public interface Interface {

    void oneParamNoReturned(String name);

}

测试类:

package com.example.learnlambda.test;

import com.example.learnlambda.dao.Interface;

public class Test {
    public static void main(String[] args) {
    
		//第一种写法
        Interface in = (String name)->{
            System.out.println(name);
        };
        in.oneParamNoReturned("王八");
		
		//第二种写法
        // 可以省略数据类型,如果方法体代码只有一句,可以省略{},如果只有一个参数,可以把小括号去掉
        Interface in = name -> System.out.println(name);
        in.oneParamNoReturned("name");

    }
}

语法格式三:有两个参数,有返回值,只有一条语句

(x,y) -> Integer.compare(x, y);

示例:

测试类:

package com.example.learnlambda.test;

import java.util.Comparator;

public class Test {
    public static void main(String[] args) {

        // {} 花括号和 return 都可以不写
        Comparator<Integer> comparator = (x,y) ->Integer.compare(x, y);
        comparator.compare(1, 2);
    }
}

语法格式四:有两个参数,有返回值,有多条语句

(x,y) -> Integer.compare(x, y);

示例:

测试类:

package com.example.learnlambda.test;

import java.util.Comparator;

public class Test {
    public static void main(String[] args) {

        //有多条语句,必须写{} 花括号
        Comparator<Integer> comparator = (x,y) ->{
            return Integer.compare(x, y);
        };
        comparator.compare(1, 1);
    }
}

©️2020 CSDN 皮肤主题: 游动-白 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值