日期我使用這種算法來排序的日期在升序排列:排序JodaTime名單由collections.sort
Collections.sort(eventList, new Comparator<Event>() {
@Override
public int compare(Event e1, Event e2) {
DateTime dt1 = new DateTime(e1.getStartDate());
DateTime dt2 = new DateTime(e2.getStartDate());
return dt1.isBefore(dt2)? 1:0;
}
});
Event first = eventList.get(0);
我的問題是,這是做事的最好的和正確的方式?
這是第二個建議:
Collections.sort(eventList, new Comparator<Event>() {
@Override
public int compare(Event e1, Event e2) {
DateTime dt1 = new DateTime(e1.getStartDate());
DateTime dt2 = new DateTime(e2.getStartDate());
if(dt1.isBefore(dt2))
return -1;
else if(dt1.isAfter(dt2))
return 1;
else return 0;
}
});
Event first = eventList.get(0);
根據https://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html#compare(T,%20T),「compare」應該返回「一個負整數,零,或者作爲第一個參數的正整數小於,等於或大於第二個參數。「所以你的return語句看起來不正確,因爲它沒有考慮'dt1'之前發生的'dt2'。 –