问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

List<WorkItem> newResult=new ArrayList<WorkItem>(); 把数据装进list集合后,如何按时间排序,取前10条

发布网友 发布时间:2022-04-22 22:52

我来回答

5个回答

热心网友 时间:2023-10-07 06:56

你说的这个一般在数据库中使用确实比较方便,但是有时不得已在List中操作。
给你介绍两种方法。

这个关键要对时间进行排序:给你一个排序方法
/**
* 排序算法,可以调用这个方法进行倒序 、顺序
* @param list 要进行排序的 List
* @param method 要对list中的对象的那个属性的get方法进行排序 比如 时间 time get方法为getTime() 只需要传入getTime即可
* @param sort 传入字符串 是进行倒序还是逆序
* @return
*/
public void sort(List<WorkItem> list, final String method, final String sort){
Collections.sort(list, new Comparator<Object>() {
public int compare(Object a, Object b) {
int ret = 0;
try{
Method m1 = ((WorkItem)a).getClass().getMethod(method, null);
Method m2 = ((WorkItem)b).getClass().getMethod(method, null);
if(sort != null && "desc".equals(sort))//倒序
ret = m2.invoke(((WorkItem)b), null).toString().compareTo(m1.invoke(((WorkItem)a), null).toString());
else//正序
ret = m1.invoke(((WorkItem)a), null).toString().compareTo(m2.invoke(((WorkItem)b), null).toString());
}catch(NoSuchMethodException ne){
logger.error(ne.getStackTrace());
System.out.println(ne);
}catch(IllegalAccessException ie){
logger.error(ie.getStackTrace());
System.out.println(ie);
}catch(InvocationTargetException it){
logger.error(it.getStackTrace());
System.out.println(it);
}
return ret;
}
});
}
把程序里你要比较的值的类型进行修改。
类中直接引用 this.sort(......);
下面的List 就是一个有序的list了,随便你怎么取了

顺便在和你说一个很好的东西 josql ,为 Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组 你可以在google 中查找出来 官网上有些例子
可以很方便的利用 类似sql 进行List 中对象操作。

我程序中用过的,效果很不错,也简化了代码。

参考资料:http://josql.sourceforge.net/

热心网友 时间:2023-10-07 06:56

什么按时间排序呀?List就像数组一样给你先放进去的放第一个位置,然后依次给排呀!放进去后就不能排了!然后你要取,然后就挨着取,他也一定是先放进去的,先取出来那样的

热心网友 时间:2023-10-07 06:56

按时间排序? 你的意思应该是WorkItem里有个时间字段吧?

如果是的话 你在写sql语句的时候就应该做了
而不是把所有结果放在list里再排序 取前10

热心网友 时间:2023-10-07 06:57

先些个 workItem 按时间的比较方法 进行排序后去前十

热心网友 时间:2023-10-07 06:58

list没那功能 不行你就用map key存时间 value存你的对象
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 java arraylist 的sort怎么用 java程序:创建一个顺序表类创建一个顺序表输出该顺序表然后将顺序表中的元素逆序排列输出新的顺序表。 arraylist重写,按数字排序 求十大敢动中国人物! Java 数组倒序输出? java如何将数组倒序打印? java 中,如何将1~100的偶数所组成的List集合倒序排列,谢谢! Arraylist有没有简单的排序方法 java ArrayList 降序排序问题 java 集合中怎么将元素倒序排列 对List集合倒序排序怎么排 java 怎么才能倒序输出ArrayList VB中,ArrayList内的数据如何根据添加时间倒序排列? ArrayList&lt;String&gt;倒序如何输出 如何实现ArrayList的反转排序? 执法机关和行政机关有区别吗? 司法机关和执法机关有什么区别,具体举例说明 中华人民共和国人民法院是国家的什么机关 人民法院依法审理行政诉讼案件属于行政执法吗 执法机关有什么? 在java编程中如何对数组进行排序,并输出排序后的数组及原数组下标值 用Java中ArrayList类实现一个冒泡排序 java ArrayList&lt;Integer&gt;如何从小到大排列? 股票中,消费板块是哪些板块? 微信支付里投诉商家后怎么撤销投诉 不撤销会怎样 对自己有影响吗 “合”字的意思是什么? “和”、“合”两字的区别? “合”与“阖”有什么区别? 合和阖有什么区别是什么? 数学中的“合”,到底是什么意思,比如1平方米 合 多少平方分米? 阖与合有什么区别? 如何将装过食用油的塑料瓶的内壁洗干净? 如何清洗大号食用油瓶子底部油垢 什么牌子的电压力锅好? 食用油油壶内部有些脏,怎样清洗干净 怎样洗油瓶? 油瓶该怎么清洗? 压力效果最好的电压力锅 电压力锅什么牌子好? 怎样将色拉油瓶壁上的油清洗干净