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:
-
Compararea referințelor (obiecte) pentru egalitate:
- Se folosește operatorul
==. - Verifică dacă două variabile indică același obiect în memorie.
- Se folosește operatorul
-
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.
- Se folosește metoda
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()(șihashCode()) pentru o comparare corectă a obiectelor după conținut.