Я пытаюсь создать код для сортировки данных для моего списка в следующем порядке и знаю, что мне нужно использовать компаратор, однако я понятия не имею, как реализовать следующую логику в компараторе. Некоторая помощь или примеры будут великолепны! Я хотел бы услышать от вас.
final private ArrayList<BookItem> books = new ArrayList<>();
Collections.sort(books, compareBooks);
Способ сортировки списка следующим образом
Порядок отображения
- Чем ниже номер sort_order, будет показан элемент. Чем новее
- дата начала_даты, тем выше будет отображаться элемент
- Чем больше значение ID, тем элемент будет
private Comparator<BookItem> compareBooks = (o1, o2) -> {
if (o1.sort_order == BookItem.ORDER && o2.sort_order != BookItem.ORDER) {
return -1;
} else if (o1.start_date != BookItem.START && o2.start_date == BookItem.START) {
return 1;
} else if (o1.ID == BookItem.ID && o2.ID == BookItem.ID) {
return 0
}
};