多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Lambda表达式 让我们从最简单的例子开始,来学习如何对一个string列表进行排序。我们首先使用Java 8之前的方法来实现: ``` 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); } }); ``` 静态工具方法Collections.sort接受一个list,和一个Comparator接口作为输入参数,Comparator的实现类可以对输入的list中的元素进行比较。通常情况下,你可以直接用创建匿名Comparator对象,并把它作为参数传递给sort方法。 除了创建匿名对象以外,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关键字都省略不要。不过这还不是最短的写法: ``` Collections.sort(names, (a, b) -> b.compareTo(a)); ``` Java编译器能够自动识别参数的类型,所以你就可以省略掉类型不写。让我们再深入地研究一下lambda表达式的威力吧。