当比较我将日历对象转换为TimeInMillis然后在编写比较器之前比较它们之前发生的时间时。
例如,Calendar 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()方法。
答案 0 :(得分:0)
java.util.Calendar
也比较了使用时间(以毫秒为单位),因此两种实现都是等效的。
我个人建议每当要比较的对象实现compareTo(..)
(Comparable
这样做)时使用Calendar
方法,除非你想明确地偏离并指定你自己的排序顺序(在在这种情况下,我建议您创建自己的Comparable实现。)