list对象排序
本人应用场景
1.涉及多个数据表的综合查询返回的结果需要进行按照时间进行排序
2.客户自定义排序方式,需按照提供方式进行排序
1.涉及多个数据表的综合查询返回的结果需要进行按照时间进行排序
1.涉及多个数据表的综合查询返回的结果需要进行按照时间进行排序
// 假设student 是需要进行排序的对象
List<student> dto =<排序内容>
Collections.sort(dto, new Comparator<student>() {
@Override
public int compare(student o1, student o2) {
return o1.getTime -o2.getTime;
}
});
通过对return o1.getTime -o2.getTime;的切换顺序实现正序或者倒序的实现
2.客户自定义排序方式,需按照提供方式进行排序
一.如果是单张表的数据按照提供方式排序,那么可以在sql层进行一个排序
例如:
SELECT DISTINCT season FROM four_enterprise WHERE del_flag = 0
ORDER BY FIELD(season,'3月', '6月', '9月', '12月') ASC
使用 FIELD函数 第一个参数是需要排序的字段
第二个参数就是需要进行排序的自定义顺序
二.涉及多个数据表的综合查询返回的结果 需要进行自定义排序
// 定义一个数组写入自定义规则
String[] rule = {"3月","6月","9月","12月"};
// 转换为list
final List<String> ListRule = Arrays.asList(rule);
// 假设student 是需要进行排序的对象
List<student> dto =<排序内容>
Collections.sort(dto, new Comparator<student>() {
@Override
public int compare(student o1, student o2) {
// o1.getType()是需要进行自定义排序的字段
int io1 = ListRule.indexOf(o1.getType());
int io2 = ListRule.indexOf(o2.getType());
return io1 - io2;
}
});
通过对 return io1 - io2;的切换顺序实现正序或者倒序的实现