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()));
Collections
.sort(list
, new Comparator<People>() {
@Override
public int compare(People o1
, People o2
) {
return o1
.getId()-o2
.getId();
}
});
Collections
.sort(list
, (o1
, o2
) -> o1
.getId()-o2
.getId());
Collections
.sort(list
, Comparator
.comparingInt(People
::getId
));
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
)