Junior — Middle
Hogyan kell az objektumokat összehasonlítani a programozásban?
sobes.tech MI
Válasz az MI-től
Java-ban az objektumok összehasonlítása attól függ, pontosan mit szeretnénk összehasonlítani:
-
Hivatkozások (objektumok) egyenlőségének összehasonlítása:
- A
==operátort használjuk. - Ellenőrzi, hogy két változó ugyanarra az objektumra mutat-e a memóriában.
- A
-
Objektumok tartalmának összehasonlítása:
- A
.equals()metódust használjuk. - Alapértelmezés szerint (az Object osztályban) a hivatkozásokat hasonlítja össze, de sok osztály (pl. String, Integer) felülírja ezt a metódust a tartalom összehasonlítására.
- A
Példa:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, külön objektumok
System.out.println(a.equals(b)); // true, tartalom egyezik
Ajánlások:
- A tartalom összehasonlításához mindig használja a
.equals()-t, ha az osztály helyesen implementálja. - Azonos objektum ellenőrzéséhez (azonosság) használja a
==-t. - Saját osztályok létrehozásakor ajánlott felülírni az
equals()(éshashCode()) metódusokat a helyes tartalom szerinti összehasonlításhoz.