У меня есть список объектов, которые я хочу сортировать по дате, с условием. Моя цель - получить список с возрастанием end_date, если end_date больше или равен сегодняшнему, чем список, упорядоченный по убыванию start_date для objets с end_date в прошлом.Сортировка списка двумя способами:
У меня есть модель так:
public class Trip implements Serializable, Comparable<Trip> {
public int id;
public Calendar date_begin, date_end;
}
и я попытался это, но он не работает, или это слишком медленно.
@Override
public int compareTo(Trip trip) {
if (date_end.getTimeInMillis() < Calendar.getInstance().getTimeInMillis() &&
trip.date_end.getTimeInMillis() < Calendar.getInstance().getTimeInMillis()) {
return comparePast(trip);
} else if (date_end.getTimeInMillis() > Calendar.getInstance().getTimeInMillis() &&
trip.date_end.getTimeInMillis() > Calendar.getInstance().getTimeInMillis()) {
return compareCurrent(trip);
} else {
return date_end.compareTo(trip.date_end);
}
}
Есть ли самый простой или быстрый способ?
То же самое можно достичь с помощью метода Collections.sort(). – ADM
Метод .sort() не учитывает мои условия – Maxime