我有兩個日期字段類說:集合中的兩個參數基礎分揀同時
class TestData {
Date activation;
Date timeStamp;
}
我想排序activation
日期的基礎上面的類的列表,如果他們是平等的,然後上基於timestamp
即max(激活)和max(timeStamp)。
代碼我想是follws只取最大值(激活)
public class CollectionSort {
public static void main(String[] args) {
List<TestData> testList = new ArrayList<TestData>();
Collections.sort(testList, new Comparator<TestData>() {
@Override
public int compare(TestData t1, TestData t2) {
int result = 0;
if (t1.getActivation().before(t2.getActivation())) {
result = 1;
}
return result;
}
});
System.out.println("First object is " + testList.get(0));
}
}
任何幫助將不勝感激。
謝謝
請注意,如果您的Comparator實現永遠不能返回負整數(通常是-1),那麼它幾乎肯定是錯的!因爲如果'compare(a,b)'返回一個正的'int',那麼'compare(b,a)'**必須返回一個負數! – 2011-04-08 08:11:41
在比較方法中,您不需要對TestData或instanceof測試進行強制轉換。由於泛型(Java 5)在幕後自動爲您執行強制轉換,因此方法參數已經屬於TestData類型。 – 2011-04-08 08:11:52