JAVA Comparator实现排序的不同方法
public class ComparatorTest {
public static void main(String[] args) {
List<People> list = new ArrayList<>();
list.add(new People(1,"张三", LocalDateTime.now()));
list.add(new People(22,"李四", LocalDateTime.now()));
list.add(new People(4,"王五", LocalDateTime.now()));
list.add(new People(3,"赵六", LocalDateTime.now()));
//1.接口
Collections.sort(list, new Comparator<People>() {
@Override
public int compare(People o1, People o2) {
return o1.getId()-o2.getId();//从小到大
}
});
//2.lambda
Collections.sort(list, (o1, o2) -> o1.getId()-o2.getId());
//3.Comparator.comparingInt
Collections.sort(list, Comparator.comparingInt(People::getId));
//4.sort
list.stream().sorted(Comparator.comparing(p->p.getId())).forEach(System.out::println);
}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
class People {
private Integer id;
private String name;
private LocalDateTime createTime;
}
打印输出
People(id=1, name=张三, createTime=2020-10-21T23:43:47.302)
People(id=3, name=赵六, createTime=2020-10-21T23:43:47.302)
People(id=4, name=王五, createTime=2020-10-21T23:43:47.302)
People(id=22, name=李四, createTime=2020-10-21T23:43:47.302)