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<String> names = new ArrayList<String>();
- 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。 |