codingWang / Issue

private space .Do NOT look at it.
3 stars 0 forks source link

basic-java8-02-lambda #5

Open codingWang opened 7 years ago

codingWang commented 7 years ago

java 8 Lambda表达式

以前,我们对一个装满String的List进行排序往往是这样的:

    List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");

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

Java 8的优雅实现是lambda表达式:

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

很短,很好读!

还能更短:

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

当方法体的代码只有一行时,你可以省略{ }return

还可以非常短:

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

List现在有一个sort方法,同时java编译器也能够推断参数类型所以你可以省略他们。

让我们一起在实践中探索lambda表达式的更多用法吧!