本文转载与本人个人博客
1.概述
在算法笔试过程中,我们经常会遇到一些排序(有时候并不会要求我们编写排序本身的代码,而是要求我们对数据做一些简单的处理),Collections工具类和List提供了排序算法,大多时候要求我们为排序方法传递一个Comparator,我们经常使用匿名类来实现这个Comparator,但是仍显繁冗。本文就此目的总结了一些使用Lambda实现Comparator的方法。
在本文,我们将首先介绍Java 8中的Lambda支持,特别是如何利用它来编写Comparator并对Collection进行排序。
首先,让我们定义一个简单的实体类:
public class Human {
private String name;
private int age;
public Human() {
super();
}
public Human(String name, int age) {
super();
this.name = name;
this.age = age;
}
// standard getters/setters, equals and hashcode
}
2.没有Lambdas的基本排序
在Java 8之前,对集合进行排序一般要为sort使用的Comparator创建匿名内部类:
new Comparator<Human>() {
@Override
public int compare(Human h1, Human h2