0
点赞
收藏
分享

微信扫一扫

3.2 Lambda表达式


1.简介
Lambda表达式实际上就是接口实现类的对象,它简化了之前匿名内部类的冗长代码的编写。Lambda表达式能使代码变得更加紧凑,增强代码的可读性。另外,Lambda表达式使并行操作大集合变得很方便,可以充分发挥多核CPU的优势,更易于为多核处理器编写代码。

2.基础语法
(1).括号
一个括号内用逗号分隔的形式参数列表,实际上就是接口里面抽象方法的参数。

(2).箭头
Lambda操作符或箭头操作符。

(3).方法体
重写方法的方法体,可以是表达式或代码块。

(parameters) -> expression

(parameters) -> {
    statement1; 
    statement2;
}

3.使用实例

public interface Greeting {
    //1.无参数无返回值
    void sayHello();

    //2.无参数有返回值
    //String sayHello();

    //3.有参数无返回值
    //void sayHello(String name);

    //4.有参数有返回值
    //String sayHello(String name);

	//5.多参数有返回值
    //String sayHello(String name1,String name2);
}

(1).无参数无返回值

public class Test {
    public static void main(String[] args) {
        Greeting greeting = () -> System.out.println("hello world");
        greeting.sayHello();
    }
}

(2).有参数有返回值

public class Test {
    public static void main(String[] args) {
        Greeting greeting = (String name) -> {
            return "hello " + name;
        };
        System.out.println(greeting.sayHello("Steven"));
    }
}

(3).省略参数的数据类型(如果是单个参数,小括号也可以省略,多参数则不可以)

public class Test {
    public static void main(String[] args) {
        Greeting greeting = name -> {
            return "hello " + name;
        };
        System.out.println(greeting.sayHello("Steven"));
    }
}

(4).省略return和大括号

public class Test {
    public static void main(String[] args) {
        Greeting greeting = (String name) -> "hello " + name;
        System.out.println(greeting.sayHello("Steven"));
    }
}

(5).多参数

public class Test {
    public static void main(String[] args) {
        Greeting greeting = (name1, name2) -> name1 + "sayHello to " + name2;
        System.out.println(greeting.sayHello("Steven", "Sherry"));
    }
}


举报

相关推荐

0 条评论