java8 lambda 表达式使用实例

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

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。