lambda表达
#lambda #java

lambda表达式是Java 8中创建的新功能。它提供了一种简洁明了的方法来实现一种方法接口aka aka @FunctionalInterface。您可能在使用可运行或比较器类时很熟悉。实现这些类,需要您创建一个新的类或匿名类。幸运的是,lambda存在于此,从而消除了Java语言的冗长。

说我们想对名称列表进行排序。我们可以使用Collections.sort()方法并实现匿名类比较器。

List<String> names = Arrays.asList("Jerome", "Steve", "Cathy", "Lara");

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

我们可以使用lambda表达式缩短上述代码。

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

哎呀,我们甚至可以使它变短。如果只是一种衬里方法,我们可以省略括号并返回关键字。

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

甜! lambda表达式不仅使我们的代码可读,还可以消除噪音,从而使我们更多地关注代码的行为部分。