Порядок по умолчанию Date
установит более новые даты после более старых, так что самые старые даты будут в начале вашего списка, а самые новые - в конце. Comparators
всегда было трудно читать, по моему мнению, поэтому я переключился на использование Ordering
объектов Google, которые реализуют Comparator
немного чище. Например, ваш Comparator
может быть написан так:
Ordering<SomeObject> order = Ordering.natural().onResultOf(new Function<SomeObject, Date>() {
public Date apply(SomeObject object) {
return object.getDate();
}
});
Comparator<SomeObject> comparator = order; // Ordering implements Comparable so this would be legal to do
Collections.sort(someList, order);
Компаратор порядка, созданный этим кодом, будет сортировать объекты SomeObject на основе их Date
, используя естественный порядок Date
. Но что делает Ordering
действительно приятным, так это то, что некоторые дополнительные методы изменяют порядок без необходимости писать больше логики, например, чтобы изменить порядок дат, чтобы быть самыми новыми и самыми старыми, нужно просто добавить вызов reverse (): 1014 *
Ordering<SomeObject> order = Ordering.natural().reverse().onResultOf(new Function<SomeObject, Date>() {
public Date apply(SomeObject object) {
return object.getDate();
}
});