Sobes.tech
Junior — Middle

Cum trebuie să se realizeze compararea obiectelor în programare?

sobes.tech AI

Răspuns de la AI

În Java, compararea obiectelor depinde de ceea ce trebuie comparat exact:

  1. Compararea referințelor (obiecte) pentru egalitate:

    • Se folosește operatorul ==.
    • Verifică dacă două variabile indică același obiect în memorie.
  2. Compararea conținutului obiectelor:

    • Se folosește metoda .equals().
    • În mod implicit (în clasa Object) compară referințele, dar multe clase (de exemplu, String, Integer) redefinește această metodă pentru compararea conținutului.

Exemplu:

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

System.out.println(a == b);       // false, obiecte diferite
System.out.println(a.equals(b));  // true, conținut identic

Recomandări:

  • Pentru compararea conținutului, folosiți întotdeauna .equals(), dacă clasa îl implementează corect.
  • Pentru verificarea dacă sunt același obiect (identitate), folosiți ==.
  • La crearea propriilor clase, se recomandă redefinirea metodei equals() (și hashCode()) pentru o comparare corectă a obiectelor după conținut.