Запитання з тегом «comparator»

Спільний інтерфейс для створення об'єкта, який визначає спосіб порівняння інших об'єктів. При використанні цього тегу для реалізації важких питань - позначте мову коду, на якій написана реалізація.

28
Сортування ArrayList користувальницьких об'єктів за властивістю
Я читав про сортування ArrayLists за допомогою компаратора, але у всіх прикладах люди, compareToякі, згідно з деякими дослідженнями, є методом для Strings. Я хотів сортувати 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; }
187 java  comparator 

14
Як використовувати компаратор у Java для сортування
Я навчився використовувати порівнянне, але у мене виникають труднощі з компаратором. У мене код помилки: 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 { private int …
169 java  sorting  comparator 


12
Android-java - Як сортувати список об'єктів за певним значенням усередині об’єкта
Я намагаюся розібратися через масив об’єктів за певним значенням всередині об'єкта. Який був би найкращий підхід зробити таке. Чи варто використовувати Collections.sort () з якимось компаратором? Я намагаюся сортувати список об'єктів за допомогою плаваючого значення, яке вони містять в одній із змінних. EDIT: Ось що я маю досі: public class …

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

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

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

10
Помилка Java: метод порівняння порушує загальний контракт
Я бачив багато запитань з цього приводу і намагався вирішити проблему, але після години гуглиння та безлічі спроб і помилок я все ще не можу це виправити. Сподіваюсь, хтось із вас вловив проблему. Ось що я отримую: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453) at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392) …

1
Порівнювач нульових параметрів зіставлення за допомогою стандартних реалізацій
Чи існує вбудована можливість створити нульовий безпечний порівняльник зіставлення в Java 8 без написання власної реалізації Comparator? При запуску наступного коду він викликає NPE, оскільки keyExtractorаргумент Comparator.comparing()може повертати nullзначення: public class ToSort { private String sortBy; public ToSort(String sortBy) { this.sortBy = sortBy; } public String getSortBy() { return sortBy; …

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.