java list<T> 根据两个字段排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java list<T> 根据两个字段排序相关的知识,希望对你有一定的参考价值。
我的问题是关于list<T>排序的问题我简单举例:article(文章) 表中有id,name(名称),sort(排序-int),pubulishiTime(发布时间-Date) 四个字段,表中有10条数据。我通过getAll()方法将十条数据全部取出来存入一个List<article>。然后现在我要做的是:对这个list进行排序,排序条件是 sort 和 pubulishiTime 两个字段。简单说明:sort 字段优先排序,pubulishiTime 其次。比如,文章1的sort 是1,那么它当然在第一位,但还有一篇文章的sort也是1,那么这个时候就要根据这两个文章的pubulishiTime 字段来排序了。 简单的说就是“双条件查询”,第一个条件重复了,就根据第二个条件查。 这个种需求Java代码的逻辑 和 oracle 数据语句 都该怎么写呢?希望得到简单明了的答案,谢谢。
参考技术A 两层循环去比较呗,不要循环嵌套 参考技术B 数据库库的话可以使用ORDER BY啊select * from article order by sort,pubulishTime;
如果要是用JAVA的话,你可以通过List两层循环遍历,按Sort排序,
然后再两层循环遍历,判断Sort是否相等,相等的话,再按pubulishTime遍历 参考技术C 用oracle就可以了
order by sort,publishitime;
JAVA list 根据对象的某个属性排序
//需要排序的list List<T> list= new ArrayList<>(); //开始排序 Collections.sort(list, new Comparator<T>(){ public int compare(T o1, T o2) { //排序属性 if(o1.getNum() < o2.getNum()){ return 1; } if(o1.getNum() == o2.getNum()){ return 0; } return -1; } }); //排序完成 输出 System.out.println(new Gson().toJson(list))
以上是关于java list<T> 根据两个字段排序的主要内容,如果未能解决你的问题,请参考以下文章