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"));
}
}