试试看这个:
现自己做一个类
import java.util.Comparator;public class MyComparator implements Comparator { public int compare(Object o1, Object o2) {
/**@todo Implement this java.util.Comparator method*/
try {
java.util.Date d1 = (java.util.Date) o1;
java.util.Date d2 = (java.util.Date) o2;
return d1.compareTo( d2 );
} catch ( ClassCastException ex ) {
ex.printStackTrace();
throw ex;
} catch ( NullException ex ) {
ex.printStackTrace();
throw ex;
}
} public boolean equals(Object obj) {
/**@todo Implement this java.util.Comparator method*/
try {
java.util.Date d1 = (java.util.Date) o1;
java.util.Date d2 = (java.util.Date) o2;
return d1.equals( d2 );
} catch ( ClassCastException ex ) {
ex.printStackTrace();
throw ex;
} catch ( NullException ex ) {
ex.printStackTrace();
throw ex;
}
}
}
然后再排序中使用:
java.util.Collections( aList, new MyComparator() );程序我来不及检查了
可能有一些错误
不过思路大概是这样的^_^
现自己做一个类
import java.util.Comparator;public class MyComparator implements Comparator { public int compare(Object o1, Object o2) {
/**@todo Implement this java.util.Comparator method*/
try {
java.util.Date d1 = (java.util.Date) o1;
java.util.Date d2 = (java.util.Date) o2;
return d1.compareTo( d2 );
} catch ( ClassCastException ex ) {
ex.printStackTrace();
throw ex;
} catch ( NullException ex ) {
ex.printStackTrace();
throw ex;
}
} public boolean equals(Object obj) {
/**@todo Implement this java.util.Comparator method*/
try {
java.util.Date d1 = (java.util.Date) o1;
java.util.Date d2 = (java.util.Date) o2;
return d1.equals( d2 );
} catch ( ClassCastException ex ) {
ex.printStackTrace();
throw ex;
} catch ( NullException ex ) {
ex.printStackTrace();
throw ex;
}
}
}
然后再排序中使用:
java.util.Collections( aList, new MyComparator() );程序我来不及检查了
可能有一些错误
不过思路大概是这样的^_^
你必须告诉Java什么是你规定的对象的顺序,否则sort()函数会使用默认的方法将你的对象排序,而这种排序不一定是你想要得。
其实sort()函数可以接两个参数:第一个是你要进行排序的容器,第二个是一个Comparator对象,表示排序的方式。
在我给的程序中已经给出了
既然排序要求是按照Date时间进行排序
那么直接使用Date类的compareTo()方法应该就可以了啊^_^
对了,想到一个问题:
List中的对象是Date
Date本身已经有compareTo()方法了
是不是直接用Collections.sort( aList );就可以了呢?^_^最近刚开始看排序,学习、学习^_^