使
ActiveAlarm实现
Comparable<ActiveAlarm>或
Comparator<ActiveAlarm>在单独的类中实现。然后致电:
Collections.sort(list);
要么
Collections.sort(list, comparator);
通常,
Comparable<T>如果有一个单一的“自然”排序顺序,则实施是个好主意…否则(如果你碰巧想要按特定顺序进行排序,但可能同样容易地希望使用另一个顺序),则最好实现
Comparator<T>。老实说,这种特殊情况可能会发生任何一种……但是我可能会坚持使用更灵活的
Comparator<T>选择。
编辑:示例实现:
public class AlarmByTimesComparer implements Comparator<ActiveAlarm> { @Override public int compare(ActiveAlarm x, ActiveAlarm y) { // TODO: Handle null x or y values int startComparison = compare(x.timeStarted, y.timeStarted); return startComparison != 0 ? startComparison : compare(x.timeEnded, y.timeEnded); } // I don't know why this isn't in Long... private static int compare(long a, long b) { return a < b ? -1 : a > b ? 1 : 0; }}


