你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

Java8中的Lambda表达式

2021/12/18 9:16:29

在此之前,我们通常使用匿名内部类的方式给出函数式接口(一个接口中,只有一个接口方法,就叫函数式接口)的实现,例如集合排序:

Collections.sort(names, new Comparator<String>() {
    @Override
    public int compare(String a, String b) {
        return b.compareTo(a);
    }
});

当然,也可以选择不这么做,直接对元素实现Comarable接口。

java8以后,可以对这种函数式接口实现方法进行简化,去除复杂的接口实例化声明:

Collections.sort(names, (String a, String b) -> {
    return b.compareTo(a);
});

因为只有一句处理,还可以继续简化:

Collections.sort(names, (String a, String b) -> b.compareTo(a));

甚至,我们可以把类型也去掉,让编译器自己判断:

names.sort((a, b) -> b.compareTo(a));