Wideo: Czy dwa obiekty będą zawsze równe, gdy ich metoda CompareTo() zwróci zero?
2024 Autor: Lynn Donovan | [email protected]. Ostatnio zmodyfikowany: 2023-12-15 23:51
Ono jest polecam to porównać do tylko zwroty 0, jeśli wezwanie do równa się na te same przedmioty zrobiłbym powrót prawda: porównać do (e2) == 0 Ma to samo wartość logiczna jako e1. równa się (e2) dla każdego e1 i e2 klasy C. Zauważ, że null jest nie jest instancją żadnej klasy, i e.
Co więcej, czy równanie równości () może zwrócić wartość false, nawet jeśli zawartość dwóch obiektów jest taka sama?
4 odpowiedzi. W java metoda public boolean równa się ( Obiekt obj) jest dziedziczony z Obiekt . Jednak wdrożenie metody określonej w Obiekt klasa jest taka, że równa się metoda będzie zwróć, jeśli i tylko Jeśli ten dwa obiekty porównywane są To samo instancja.
Następnie pojawia się pytanie, dlaczego metoda CompareTo () powinna być spójna z metodą równa się () w Javie? Dzieje się tak, ponieważ interfejs Mapy jest zdefiniowany w kategoriach równa się operacja, ale mapa wykonuje wszystkie kluczowe porównania za pomocą swojego porównać do (lub porównaj) metoda , więc dwa klucze, które są uważane równy przez to metoda są, z punktu widzenia posortowanej mapy, równy.
Mając to na uwadze, jaka jest różnica między metodą == equals () a metodą CompareTo ()?
porównać do : Porównuje dwa ciągi leksykograficznie. równa się : porównuje ten ciąg z określonym obiektem. porównać do porównuje dwa ciągi znaków według ich znaków (o tym samym indeksie) i odpowiednio zwraca liczbę całkowitą (dodatnią lub ujemną). równa się() sprawdza, czy dwa obiekty są takie same, czy nie i zwraca wartość logiczną.
Czy możemy nadpisać metodę CompareTo?
Zastąp porównanie do metody Powinien zwrócić ujemną liczbę całkowitą (zwykle -1), jeśli bieżący obiekt wyzwalający jest mniejszy niż przekazany jeden i dodatnia liczba całkowita (zwykle +1), jeśli jest większa niż i 0, jeśli jest równa. Metoda porównaj do powinien zgłaszać wyjątek, jeśli przekazany obiekt ma niezgodny typ lub null.
Zalecana:
Czy złączki SharkBite będą działać na rurkach miedzianych?
Mosiężne złączki SharkBite wciskane są kompatybilne z rurami PEX, miedzianymi, CPVC, PE-RT i HDPE. Złączki SharkBite są dostarczane z usztywniaczem PEX wstępnie załadowanym do złącza dla PEX, PE-RT i HDPE. Usztywniacza PEX nie trzeba usuwać w przypadku zastosowań z miedzi lub CPVC
Jak rozpoznać, czy dwa obiekty są podobne?
Jeśli dwa obiekty mają ten sam kształt, nazywane są „podobnymi”. Gdy dwie figury są podobne, stosunki długości odpowiadających im boków są równe. Aby określić, czy pokazane trójkąty są podobne, porównaj ich odpowiadające boki
Jak porównać dwa obiekty w Pythonie?
Zarówno „is”, jak i „==” są używane do porównywania obiektów w Pythonie. Operator „==” porównuje wartości dwóch obiektów, natomiast „is” sprawdza, czy dwa obiekty są takie same (innymi słowy dwa odniesienia do tego samego obiektu). Operator „==” nie mówi nam, czy x1 i x2 faktycznie odnoszą się do tego samego obiektu, czy nie
Skąd wiesz, czy dwa Hashmapy są równe?
Jeśli chcemy porównać hashmapy według kluczy, tzn. dwa hashmapy będą sobie równe, jeśli mają dokładnie taki sam zestaw kluczy, możemy użyć HashMap. funkcja keySet(). Zwraca wszystkie klucze mapy w HashSet. Możemy porównać hashset kluczy dla obu map za pomocą Set
Jak sprawdzić, czy dwa ciągi są równe w C#?
Funkcja strcmp() porównuje dwa łańcuchy znak po znaku. Jeśli pierwszy znak dwóch ciągów jest równy, porównywany jest następny znak dwóch ciągów. Trwa to do momentu, gdy odpowiednie znaki dwóch ciągów są różne lub zostanie osiągnięty znak null ''. Jest zdefiniowany w ciągu znaków