Ce face Arrays.equals
a == b și a.equals(b) verifică doar dacă este același array. Arrays.equals(a, b) compară conținutul: aceeași lungime și elemente egale pe fiecare poziție (obiectele cu equals). Două valori null sunt considerate egale.
Pentru matrice (int[][]), equals compară rândurile ca obiecte, deci dă de obicei false. Folosește Arrays.deepEquals, care compară și în interiorul rândurilor.
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Array-urile comparate. |
Ce returnează
true dacă au același conținut.
Exemple
Exemplul 1: Răspunsurile elevului față de barem
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
char[] barem = {'a', 'c', 'b', 'd'};
char[] ana = {'a', 'c', 'b', 'd'};
char[] radu = {'a', 'b', 'b', 'd'};
System.out.println("Ana == barem: " + (ana == barem));
System.out.println("Ana corect: " + Arrays.equals(ana, barem));
System.out.println("Radu corect: " + Arrays.equals(radu, barem));
}
}
Rezultat
Ana == barem: false
Ana corect: true
Radu corect: false
Exemplul 2: Matrice: equals vs deepEquals
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[][] a = {{1, 2}, {3, 4}};
int[][] b = {{1, 2}, {3, 4}};
System.out.println("equals: " + Arrays.equals(a, b));
System.out.println("deepEquals: " + Arrays.deepEquals(a, b));
}
}
Rezultat
equals: false
deepEquals: true
Greșeli frecvente
- Compari array-uri cu
==sau.equals. Rezultatul estefalsechiar dacă au aceleași valori. - Folosești
Arrays.equalspe matrice. FoloseștedeepEquals.
Comenzi înrudite
Arrays.toString: toString transformă un array în text de forma [1, 2, 3]; deepToString face același lucru pentru matrice (array-uri de array-uri).List.equals: Două liste sunt egale dacă au aceleași elemente în aceeași ordine, indiferent de clasa lor; hashCode urmează aceeași regulă.Map.equals: Două map-uri sunt egale dacă au exact aceleași perechi cheie → valoare, indiferent de ordine sau de implementare.Arrays: Clasă cu metode statice pentru array-uri: afișare, sortare, căutare, copiere, umplere, comparare și transformare în listă sau stream.