Существует массив объектов.
Для него необходимо совершить сортировку по возрастанию(по переменной getId) + к этому, если getId=0
, то необходимо объект перенести в конец массива.
Есть массив - [9,3,0,1,null,null]
результат - [1,3,9,0,null,null]
Разобрался только с сортировкой по возрастанию, но перенести 0 в конец не получается.
public void sortByIN(Student[] students) {
Comparator<Student> studentComparator = (e1, e2) ->
Comparator.<Integer>nullsFirst(Comparator
.naturalOrder())
.compare(e1.getId(), e2.getId());
Comparator<Student> generalComparator = (e1, e2) -> {
if (e1 == null || e2 == null)
return Comparator.nullsLast(studentComparator).compare(e1, e2);
else
return studentComparator.compare(e1, e2);
};
Arrays.sort(students, generalComparator);
}
// ноль больше любого другого, остальные равны
Comparator<Integer> zerosLast = (s1, s2) -> {
if (s1 == 0 && s2 != 0) {
return 1;
}
if (s2 == 0 && s1 != 0) {
return -1;
}
return 0;
};
//нули в конце, остальное в естественном порядке
Comparator<Integer> zerosLastAscending = zerosLast.thenComparing(Comparator.naturalOrder());
//null в конце, остальное в написанном выше поряд
Comparator<Integer> integerComparator = Comparator.nullsLast(zerosLastAscending);
Comparator<Student> studentComparator = Comparator.comparing(Student::getId, integerComparator);
Как в приложение написанное на Android Studio поставить свою карту с Google Maps(Свои места) Нашел, что можно сделать это импортом KML файла, но не понимаю...
Есть вот такое выражениеЯ разбил счёт на две части: правая точка и левая точка
У меня есть приложение на spring, в процессе сборки получаю war-файлЕсли загрузить руками на удаленный сервер - все ок