lambda表達式中的sorted和Comparator實現多種方式排序
1.倒序排序
2.先后順序排序
3.自定義排序規則
代碼如下
List<Trade> sorted
= trades.stream()
.sorted(
Comparator
// 首先按照價格排序
.comparing(
Trade::getPrice,
// TODO 進行排序調整,將自然排序翻轉
Comparator.reverseOrder())
// 時間先后進行排序,自然排序
.thenComparing(Trade::getTime)
// 交易量排序,自然排序翻轉
.thenComparing(
Trade::getCount,
Comparator.reverseOrder())
// 自定義排序規則
.thenComparing(
// 要排序的字段值
Trade::getType,
// 自定義排序規則
(type1, type2) -> {
if ("機構".equals(type1) && "個人".equals(type2)) {
// -1:type1在先, type2在后
return -1;
} else if ("個人".equals(type1) && "機構".equals(type2)) {
return 1;
} else {
return 0;
}
}))
.collect(Collectors.toList());