Sobes.tech
Junior — Middle

Ako by sa malo vykonávať porovnávanie objektov v programovaní?

sobes.tech AI

Odpoveď od AI

V Jave závisí porovnanie objektov od toho, čo presne chcete porovnať:

  1. Porovnanie referencií (objektov) na rovnosť:

    • Používa sa operátor ==.
    • Kontroluje, či dve premenne ukazujú na ten istý objekt v pamäti.
  2. Porovnanie obsahu objektov:

    • Používa sa metóda .equals().
    • Vo výchozom nastavení (v triede Object) porovnáva referencie, ale mnoho tried (napríklad String, Integer) túto metódu prepísalo na porovnanie obsahu.

Príklad:

String a = new String("test");
String b = new String("test");

System.out.println(a == b);       // false, rôzne objekty
System.out.println(a.equals(b));  // true, obsah je rovnaký

Odporúčania:

  • Na porovnanie obsahu vždy používajte .equals(), ak to trieda správne implementuje.
  • Na kontrolu, či ide o ten istý objekt (identita), používajte ==.
  • Pri vytváraní vlastných tried je vhodné prepísať metódu equals() (a hashCode()) pre správne porovnanie objektov podľa obsahu.