Вопросы с тегом «comparator»

1145
Сортировать ArrayList пользовательских объектов по свойству

Я читал о сортировке ArrayLists с помощью Comparator, но во всех примерах, compareToкоторые использовали люди, согласно некоторым исследованиям, это метод для строк. Я хотел отсортировать ArrayList пользовательских объектов по одному из их свойств: объекту Date ( getStartDay()). Обычно я сравниваю...

188
«Метод сравнения нарушает его общий договор!»

Может кто-нибудь объяснить мне простыми словами, почему этот код выдает исключение «Метод сравнения нарушает свой общий контракт!» И как мне это исправить? private int compareParents(Foo s1, Foo s2) { if (s1.getParent() == s2) return -1; if (s2.getParent() == s1) return 1; return 0;...

112
Android-java - Как отсортировать список объектов по определенному значению внутри объекта

Я пытаюсь отсортировать массив объектов по определенному значению внутри объекта. Как лучше всего сделать это? Должен ли я использовать Collections.sort () с каким-то компаратором? Я пытаюсь отсортировать список объектов по значению с плавающей запятой, которое они содержат в одной из переменных....

108
Когда использовать Comparable и Comparator

У меня есть список объектов, которые мне нужно отсортировать по полю, например Score. Не задумываясь, я написал новый класс, реализующий Comparator, который выполняет задачу и работает. Теперь, оглядываясь на это, мне интересно, должен ли я вместо этого иметь мой класс, реализующий Comparable,...

95
Как работает Javascript sort ()?

Как следующий код сортирует этот массив по порядку номеров? var array=[25, 8, 7, 41] array.sort(function(a,b){ return a - b }) Я знаю, что если результат вычисления ... Меньше 0 : индекс «a» отсортирован по более низкому индексу, чем «b». Ноль: «a» и «b» считаются равными, сортировка не...

86
Ошибка Java: метод сравнения нарушает общий договор

Я видел много вопросов по этому поводу и пытался решить проблему, но после часа поиска в Google и множества проб и ошибок я все еще не могу это исправить. Я надеюсь, что некоторые из вас уловили проблему. Вот что я получаю: java.lang.IllegalArgumentException: Comparison method violates its general...

84
Очень смущает вывод типа компаратора Java 8

Я изучал разницу между Collections.sortи list.sort, особенно в отношении использования Comparatorстатических методов и того, требуются ли типы параметров в лямбда-выражениях. Прежде чем мы начнем, я знаю, что могу использовать ссылки на методы, например, Song::getTitleдля решения моих проблем, но...

22
Почему удаление из TreeSet с помощью специального компаратора не приведет к удалению большего набора элементов?

Используя Java 8 и Java 11, рассмотрите следующее TreeSetс String::compareToIgnoreCaseкомпаратором: final Set<String> languages = new TreeSet<>(String::compareToIgnoreCase); languages.add("java"); languages.add("c++"); languages.add("python"); System.out.println(languages); // [c++,...