java 8的lambda表达式本质上是一个内置类,实现了某个接口, 可以访问上下文中的变量, 写起来简单了很多, 请看下面的示例。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by outofmemory.cn on 2015/11/25.
*/
public class AppLambda {
public static void main(String[] args) {
List names = new ArrayList();
names.add("Jim");
names.add("Tom");
names.add("Mary");
Collections.sort(names, (a, b) -> a.compareTo(b));
Collections.sort(names, (String a, String b) -> {
return a.compareTo(b);
});
for (String name : names) {
System.out.println(name);
}
}
}
上面实例中调用了两次Collections.sort()方法, 第一个lambda表达式很简单(a, b) -> a.compareTo(b), 这里将a,b两个变量的类型都省略了, 返回值直接写在了->之后。
而第二个lambda表达式则比较复杂一点; 首先完整的写了类型名,并写了花括号, 有了花括号之后就可以写多行语句,最后需要写return。