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

28
Сортировать ArrayList пользовательских объектов по свойству
Я читал о сортировке ArrayLists с помощью Comparator, но во всех примерах, compareToкоторые использовали люди, согласно некоторым исследованиям, это метод для строк. Я хотел отсортировать ArrayList пользовательских объектов по одному из их свойств: объекту Date ( getStartDay()). Обычно я сравниваю их, item1.getStartDate().before(item2.getStartDate())поэтому мне было интересно, могу ли я написать что-то …
1145 java  sorting  date  comparator 

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

14
Как использовать Comparator в Java для сортировки
Я узнал, как использовать сопоставимые, но у меня возникли трудности с Comparator. У меня ошибка в моем коде: Exception in thread "main" java.lang.ClassCastException: New.People cannot be cast to java.lang.Comparable at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at java.util.Collections.sort(Unknown Source) at New.TestPeople.main(TestPeople.java:18) Вот мой код: import java.util.Comparator; public class People implements Comparator …
169 java  sorting  comparator 


12
Android-java - Как отсортировать список объектов по определенному значению внутри объекта
Я пытаюсь отсортировать массив объектов по определенному значению внутри объекта. Как лучше всего сделать это? Должен ли я использовать Collections.sort () с каким-то компаратором? Я пытаюсь отсортировать список объектов по значению с плавающей запятой, которое они содержат в одной из переменных. РЕДАКТИРОВАТЬ: Это то, что у меня есть: public class …

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

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

10
Ошибка Java: метод сравнения нарушает общий договор
Я видел много вопросов по этому поводу и пытался решить проблему, но после часа поиска в Google и множества проб и ошибок я все еще не могу это исправить. Я надеюсь, что некоторые из вас уловили проблему. Вот что я получаю: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) …

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

1
Почему удаление из 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++, java, python] Когда я пытаюсь удалить точные элементы, присутствующие в TreeSet, это работает: все из указанных удалены: languages.removeAll(Arrays.asList("PYTHON", "C++")); System.out.println(languages); // [java] Однако, если я попытаюсь удалить вместо …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.