Da li će dva objekta uvijek biti jednaka kada njihova compareTo () metoda vrati nulu?
Da li će dva objekta uvijek biti jednaka kada njihova compareTo () metoda vrati nulu?

Video: Da li će dva objekta uvijek biti jednaka kada njihova compareTo () metoda vrati nulu?

Video: Da li će dva objekta uvijek biti jednaka kada njihova compareTo () metoda vrati nulu?
Video: Полный курс TypeScript за час | Тайпскрипт для начинающих 2024, April
Anonim

To je preporučio to compareTo samo vraća 0, ako je poziv na jednaki on isti objekti bi povratak istinito: compareTo (e2) == 0 ima isto boolean vrijednost kao e1. jednaki (e2) za svaki e1 i e2 klase C. Imajte na umu da null je nije instanca bilo koje klase, i e.

Nadalje, da li je moguće da jednako () vrati false čak i ako je sadržaj dva objekta isti?

4 odgovora. U Javi metod public boolean jednaki ( Objekat obj) je naslijeđen od Objekat . Međutim, implementacija metode kako je definirana u Objekat klasa je to jednaki metoda će vrati ako i samo ako the dva objekta upoređuju se isto instance.

Nakon toga, postavlja se pitanje zašto bi compareTo () trebao biti konzistentan s metodom equals () u Javi? To je zato što je interfejs mape definisan u smislu jednaki operacija, ali mapa izvodi sva ključna poređenja koristeći svoj compareTo (ili uporedi) metoda , dakle dva ključa koja se smatraju jednaka ovim metoda su, sa stanovišta sortirane karte, jednaka.

Imajući ovo u vidu, koja je razlika između metoda == equals () i compareTo ()?

compareTo : Uspoređuje dva niza leksikografski. jednaki : Uspoređuje ovaj niz sa navedenim objektom. compareTo uspoređuje dva niza prema njihovim znakovima (u istom indeksu) i u skladu s tim vraća cijeli broj (pozitivan ili negativan). jednako() provjerava da li su dva objekta ista ili ne i vraća boolean.

Možemo li nadjačati compareTo metodu?

Nadjačajte compareTo metodu Trebao bi vratiti negativan cijeli broj (obično -1), ako je trenutni objekt koji pokreće manji od proslijeđenog jedan , i pozitivan cijeli broj (obično +1) ako je veći od, i 0 ako je jednak. compareTo metoda treba izbaciti izuzetak ako proslijeđeni objekt ima nekompatibilan tip ili null.

Preporučuje se: