天天看点

Java8 Lambda表达式之比较器

在这个例子中,我将向你展示如何使用java8的lambda表达式写的比较器排序列表。

经典<code>comparator</code>例子

lambda表达式方式

这个例子使用年龄比较<code>developer</code>对象,通常你使用<code>collections.sort</code>并且通过一个匿名函数实现<code>comparator</code>:

输出

当排序的需求要更改时,你需要通过一个新的<code>comparator</code>比较器:

上面的代码可以工作,但是,你认为创建一个类只是因为你想改变一个单一的代码,不觉得有点奇怪吗?

在java8中,<code>list</code>支持<code>sort</code>方法,不需要使用<code>collections.sort</code>了

lambda表达式示例:

3.1 根据年龄排序

3.2 根据姓名排序

3.3 根据薪水排序

3.4 排序反转 3.4.1 使用lambda表达式对薪水进行排序

3.4.2 使用lambda表达式对薪水进行反转排序

输出:

参考资料:

<a href="http://www.developer.com/java/start-using-java-lambda-expressions.html">start using java lambda expressions</a>

<a href="https://docs.oracle.com/javase/tutorial/java/javaoo/lambdaexpressions.html">oracle : lambda expressions</a>

<a href="https://docs.oracle.com/javase/8/docs/api/java/util/comparator.html">oracle : comparator</a>