码迷,mamicode.com
首页 > 编程语言 > 详细

java自定义ArrayList排序, 大神略过

时间:2014-09-30 21:30:10      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:java   arraylist   comparator   

一个list里面有两种对象,现在有个需求必须对不同的对象的日期来排序,以下是代码

/**
*@author 肖华 xh1991101@163.com
*/

List<Message> messages=messageSrv.getList(u.getUserId());

List<Object> messageList=new ArrayList<Object>();
for(Object o:messages){
messageList.add(o);
}
for(Object o:checks){
messageList.add(o);
}
Collections.sort(messageList,  new Comparator(){
public int compare(Object o1, Object o2) {
if(o1 instanceof Message && o2 instanceof Message){
Message m=(Message) o1;
Message m2=(Message) o2;
if(m.getMessageDate().after(m2.getMessageDate()))
return 1;
if(m.getMessageDate().equals(m2.getMessageDate()))
return 0;
if(m.getMessageDate().before(m2.getMessageDate()))
return -1;
}else if(o1 instanceof CheckRecord && o2 instanceof Message){
CheckRecord m=(CheckRecord) o1;
Message m2=(Message) o2;
if(m.getCdate().after(m2.getMessageDate()))
return 1;
if(m.getCdate().equals(m2.getMessageDate()))
return 0;
if(m.getCdate().before(m2.getMessageDate()))
return -1;
}else if(o1 instanceof CheckRecord && o2 instanceof CheckRecord){
CheckRecord m=(CheckRecord) o1;
CheckRecord m2=(CheckRecord) o2;
if(m.getCdate().after(m2.getCdate()))
return 1;
if(m.getCdate().equals(m2.getCdate()))
return 0;
if(m.getCdate().before(m2.getCdate()))
return -1;

}else if(o1 instanceof Message && o2 instanceof CheckRecord){
Message m=(Message) o1;
CheckRecord m2=(CheckRecord) o2;
if(m.getMessageDate().after(m2.getCdate()))
return 1;
if(m.getMessageDate().equals(m2.getCdate()))
return 0;
if(m.getMessageDate().before(m2.getCdate()))
return -1;
}
return 0;

}


写个日志不容易,转载请注明出处:http://blog.csdn.net/xh199110  谢谢

java自定义ArrayList排序, 大神略过

标签:java   arraylist   comparator   

原文地址:http://blog.csdn.net/xh199110/article/details/39698725

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!