1. 什么是Lambda?
Fundamentally, a lambda expression is just a shorter way of writing an implementation of a method for later execution.
(从根本上讲,一个lambda表达式是一个短的写作方式用于以后的执行方法的实现。)
(1)lambda是方法的实现
(2)lambda是延迟执行的
2.举例
首先看一个用匿名内部类的例子。
public class Test1{
public static void main(String args[]){
Runnable r = new Runnable(){
public void run(){
System.out.println("hello,lambda!");
}
};
r.run();
}
}
要换成lambda是什么样的呢?
public class Test2{
public static void main(String args[]){
Runnable r = ()->System.out.println("hello,lambda");
r.run();
}
}
例子2
使用前:
List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return b.compareTo(a);
}
});
使用后:
Collections.sort(names, (String a, String b) -> {
return b.compareTo(a);
});
Lambda语法
A lambda in Java essentially consists of three parts: a parenthesized set of parameters, an arrow, and then a body,
which can either be a single expression or a block of Java code.
lambda包含3个部分:
(1)括弧包起来的参数
(2)一个箭头
(3)方法体,可以是单个语句,也可以是语句块
参数可以写类型,也可以不写,jvm很智能的,它能自己推算出来