Junior — Middle
Kā būtu jāveic objektu salīdzināšana programmēšanā?
sobes.tech AI
Atbilde no AI
Java, objektu salīdzināšana ir atkarīga no tā, ko tieši vēlaties salīdzināt:
-
Atsauces (objektu) vienādības salīdzināšana:
- Tiek izmantots operators
==. - Pārbauda, vai divas mainīgās norāda uz to pašu objektu atmiņā.
- Tiek izmantots operators
-
Objektu satura salīdzināšana:
- Tiek izmantota metode
.equals(). - Pēc noklusējuma (klasē Object) salīdzina atsauces, bet daudzas klases (piemēram, String, Integer) pārdefinē šo metodi, lai salīdzinātu saturu.
- Tiek izmantota metode
Piemērs:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, dažādi objekti
System.out.println(a.equals(b)); // true, saturs ir vienāds
Ieteikumi:
- Satura salīdzināšanai vienmēr izmantojiet
.equals(), ja klase to pareizi īsteno. - Lai pārbaudītu, vai tas ir tas pats objekts (identitāte), izmantojiet
==. - Izveidojot savas klases, ieteicams pārdefinēt
equals()(unhashCode()) metodes, lai pareizi salīdzinātu objektus pēc satura.