Всем привет. Помогите если не трудно.
Выполнил задание и теперь пытаюсь понять как его оптимизировать чтобы выглядело нормально. Потому что то что приходит в голову выглядит отнюдь не нормально.
Есть две сортировки одного массива объектов одного и того же класса.
Нужно чтобы они отсортировались от меньшего к большему учитывая определенные свойства, но с учетом что ячейки содержащие null должны оказаться в самом конце массива, а перед ними все ячейки у которых определенные поле равно 0 или null (в зависимости от того по какому полу делается сортировка).
Вот код:
Arrays.sort(devices, new Comparator<Device>() {
@Override
public int compare(Device o1, Device o2) {
if (o1 == null && o2 == null) {
return 0;
}
if (o1 == null) {
return 1;
}
if (o2 == null) {
return -1;
}
if (o1.getIn() == 0) {
return 1;
}
if (o2.getIn() == 0) {
return -1;
}
return Integer.compare(o1.getIn(), o2.getIn());
}
});
Arrays.sort(devices, new Comparator<Device>() {
@Override
public int compare(Device o1, Device o2) {
if (o1 == null && o2 == null) {
return 0;
}
if (o1 == null) {
return 1;
}
if (o2 == null) {
return -1;
}
if (o1.getProductionDate() == null) {
return 1;
}
if (o2.getProductionDate() == null) {
return -1;
}
return o1.getProductionDate().compareTo(o2.getProductionDate());
}
});
Пробовал выносить сортировку в отдельный метод, но выглядит аморально. Я не прошу написать за меня мое задание. Ни в коем случае. Если можете, подкиньте идею как это реализовать. А реализую сам. Хелп.