Переместить объект в конец массива, у которого определенная переменная равна 0

179
25 января 2019, 22:20

Существует массив объектов. Для него необходимо совершить сортировку по возрастанию(по переменной 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);
}
Answer 1
// ноль больше любого другого, остальные равны
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);
READ ALSO
В приложение поставить свою карту с google maps

В приложение поставить свою карту с google maps

Как в приложение написанное на Android Studio поставить свою карту с Google Maps(Свои места) Нашел, что можно сделать это импортом KML файла, но не понимаю...

188
Проблема с вычислением в java

Проблема с вычислением в java

Есть вот такое выражениеЯ разбил счёт на две части: правая точка и левая точка

167
Деплой из idea на удаленный Tomcat?

Деплой из idea на удаленный Tomcat?

У меня есть приложение на spring, в процессе сборки получаю war-файлЕсли загрузить руками на удаленный сервер - все ок

183