Pytania otagowane jako comparator

Wspólny interfejs do tworzenia obiektu, który określa sposób porównywania innych obiektów. W przypadku używania tego tagu w przypadku trudnych pytań dotyczących implementacji - oznacz język kodu, w którym jest napisana implementacja.

28
Sortuj ArrayList niestandardowych obiektów według właściwości
Czytałem o sortowaniu ArrayLists przy użyciu Komparatora, ale we wszystkich przykładach ludzie używali, compareToco według niektórych badań jest metodą dla Ciągów. Chciałem posortować ArrayList niestandardowych obiektów według jednej z ich właściwości: obiektu Date ( getStartDay()). Zwykle je porównuję, item1.getStartDate().before(item2.getStartDate())więc zastanawiałem się, czy mógłbym napisać coś takiego: public class CustomComparator { …
1145 java  sorting  date  comparator 

11
„Metoda porównawcza narusza ogólną umowę!”
Czy ktoś może mi wyjaśnić w prosty sposób, dlaczego ten kod generuje wyjątek „Metoda porównawcza narusza ogólną umowę!” I jak to naprawić? 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
Jak używać komparatora w Javie do sortowania
Nauczyłem się używać porównywalnego, ale mam trudności z Komparatorem. Mam błąd w moim kodzie: 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) Oto mój kod: import java.util.Comparator; public class People implements Comparator { private int id; …
169 java  sorting  comparator 


12
Android-java - Jak sortować listę obiektów według określonej wartości w obiekcie
Próbuję posortować tablicę obiektów według określonej wartości w obiekcie. Jakie byłoby najlepsze podejście do zrobienia takiej rzeczy. Czy powinienem używać Collections.sort () z jakimś komparatorem? Próbuję posortować listę obiektów według wartości typu float, które przechowują w jednej ze zmiennych. EDYCJA: To, co mam do tej pory: public class CustomComparator implements …

19
Kiedy używać produktu porównawczego i porównawczego
Mam listę obiektów, które muszę posortować według pola, powiedzmy Wynik. Bez zastanawiania się napisałem nową klasę, która implementuje komparator, który wykonuje zadanie i działa. Patrząc wstecz na to, zastanawiam się, czy zamiast tego powinienem mieć moją klasę implementującą Comparable, zamiast tworzyć nową klasę, która implementuje Comparator. Wynik jest jedynym polem, …

9
Jak działa sort () w JavaScript?
W jaki sposób poniższy kod sortuje tę tablicę w kolejności numerycznej? var array=[25, 8, 7, 41] array.sort(function(a,b){ return a - b }) Wiem, że jeśli wynik obliczeń to ... Mniejsze niż 0 : „a” jest sortowane jako indeks niższy niż „b”. Zero: „a” i „b” są uważane za równe i …

10
Błąd Java: metoda porównawcza narusza jej umowę ogólną
Widziałem wiele pytań na ten temat i próbowałem rozwiązać problem, ale po godzinie googlowania i wielu prób i błędów nadal nie mogę tego naprawić. Mam nadzieję, że niektórzy z was złapią problem. Oto, co otrzymuję: 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) at java.util.ComparableTimSort.sort(ComparableTimSort.java:191) …

4
Bardzo zdezorientowany przez wnioskowanie o typie komparatora Java 8
Przyglądałem się różnicy między Collections.sorti list.sort, w szczególności w odniesieniu do używania Comparatormetod statycznych i tego, czy typy parametrów są wymagane w wyrażeniach lambda. Zanim zaczniemy, wiem, że mógłbym użyć referencji do metod, np. Song::getTitleAby przezwyciężyć swoje problemy, ale moje zapytanie tutaj nie jest czymś, co chcę naprawić, ale czymś, …

1
Dlaczego usunięcie z TreeSet za pomocą niestandardowego komparatora nie usuwa większego zestawu elementów?
Korzystając zarówno z Java 8, jak i Java 11, weź pod uwagę następujące kwestie TreeSetz String::compareToIgnoreCasekomparatorem: final Set<String> languages = new TreeSet<>(String::compareToIgnoreCase); languages.add("java"); languages.add("c++"); languages.add("python"); System.out.println(languages); // [c++, java, python] Kiedy próbuję usunąć dokładne elementy znajdujące się w TreeSet, to działa: wszystkie te określone są usuwane: languages.removeAll(Arrays.asList("PYTHON", "C++")); System.out.println(languages); // …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.