Sobes.tech
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:

  1. 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.
  2. 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.

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() (és hashCode()) metódusokat a helyes tartalom szerinti összehasonlításhoz.