1

比较时间时,我将日历对象转换为 TimeInMillis,然后在编写比较器时比较它们中的哪一个。

例如,日历 event1 和 event2 是描述过去某个时间的事件的两个对象。我想根据这些事件对列表进行排序,最近发生的事件排在最前面。所以我有以下代码

private class LeastRecentEventComparator implements Comparator<Event>
{
    @Override
    public int compare(Event o1, Event o2)
    {
        if (o1.getTimeInMillis() < o2.getTimeInMillis())
        {
            return -1;
        }
        else if (o1.getTimeInMillis() > o2.getTimeInMillis())
        {
            return 1;
        }
        return 0;
    }
}

我想了解更好的方法是使用 Calendar.after() 还是 Calendar.before() 方法。

4

1 回答 1

0

java.util.Calendar也以毫秒为单位比较使用时间,因此两种实现都是等效的。

我个人建议在compareTo(..)要比较的对象实现时使用该方法ComparableCalendar这样做),除非您想明确偏离并指定自己的排序顺序(在这种情况下,我建议创建自己的 Comparable 实现)。

于 2013-11-11T11:40:31.397 回答