Wie vergleiche ich Arrays?

Da Arrays wie jedes Objekt die Methode equals() besitzen, ist es naheliegend, diese Methode für einen Vergleich zu verwenden.
Wichtig: Der Vergleich mit equals() liefert nur dann true zurück, wenn beide Referenzen auf dasselbe Array zeigen. Ein Vergleich des Inhalts findet nicht statt.

Mehr dazu findest du im Artikel “Was ist der Unterschied zwischen einem Referenzdatentyp und einem Wertdatentyp?” in unserer FAQ.

int a1[] = { 1, 2, 3 };
int a2[] = { 1, 2, 3 };
System.out.println(a1.equals(a2)); // Ausgabe: false

Im Folgenden werden zwei Methoden vorgestellt, die zwei Arrays auf Gleichheit des Inhalts überprüfen.

1. Überprüfung von zwei int-Arrays auf Gleichheit in einer selbst geschriebenen Methode:

static boolean arrayEquals(int a1[], int a2[]) {
    if (a1.length != a2.length) {
        return false;
    }
    for (int i = 0; i < a1.length; i++) {
        if (a1[i] != a2[i]) {
            return false;
        }
    }
    return true;
}

In der Methode arrayEquals() wird zuerst die Länge der beiden Arrays a1 und a2 verglichen. Haben beide Arrays dieselbe Länge, werden die Elemente von a1 und a2 paarweise verglichen.

2. Eine weitere Möglichkeit zwei Arrays auf Gleichheit der Inhalte zu prüfen, bietet die Methode java.util.Arrays.equals().

import java.util.Arrays;
...

int a1[] = { 1, 2, 3 };
int a2[] = { 1, 2, 3 };
System.out.println(Arrays.equals(a1, a2)); // Ausgabe: true