There are two kinds of objects in a list, and now there is a need to sort the dates of different objects, the following is the code
/**
* @author Xiao Hua [email protected]
*/
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;
}
Write a log not easy, reprint please indicate source: http://blog.csdn.net/xh199110 Thank you
Java custom ArrayList sort, big God skip