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

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

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

To je preporučio to usporedi To samo vraća 0, ako je poziv na jednaki na isti objekti bi povratak istina: usporedi To (e2) == 0 ima isto booleova 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, je li moguće da jednako () vrati false čak i ako je sadržaj dvaju objekata isti?

4 odgovora. U Javi metoda public boolean jednaki ( Objekt obj) nasljeđuje se od Objekt . Međutim, provedba metode kako je definirana u Objekt razred je to jednaki metoda će vratiti ako i jedino ako the dva objekta uspoređuju se isti primjer.

Nakon toga, postavlja se pitanje zašto bi compareTo () trebao biti dosljedan metodi equals () u Javi? To je tako jer je sučelje karte definirano u smislu jednaki operacije, ali karta izvodi sve ključne usporedbe koristeći svoj usporedi To (ili usporediti) metoda , dakle dva ključa koja se smatraju jednak ovim metoda su, sa stajališta sortirane karte, jednak.

Imajući to na umu, koja je razlika između metode == jednako () i compareTo ()?

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

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 should baca iznimku ako proslijeđeni objekt ima nekompatibilan tip ili null.

Preporučeni: