Arrays.equals und toString
Arrays vergleichen und ausgeben
Arrays.equals und toString ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Vergleichen und ausgeben
Arrays überschreiben equals oder toString nicht auf eine nützliche Weise. Die Hilfsklasse Arrays stellt equals und toString bereit, die den Inhalt der Elemente tatsächlich untersuchen.
Warum == fehlschlägt
Wenn Sie == auf Arrays anwenden, werden Referenzen und nicht die Inhalte verglichen. Zwei verschiedene Arrays mit identischen Elementen sind nicht gleich bezüglich ==.
public class Main {
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
System.out.println(a == b);
}
}Arrays.equals
Arrays.equals(a, b) gibt true zurück, wenn beide Arrays die gleiche Länge und gleiche Elemente an denselben Positionen haben.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
System.out.println(Arrays.equals(a, b));
}
}Die Reihenfolge ist entscheidend
Die Reihenfolge der Elemente ist entscheidend. Zwei Arrays mit denselben Werten in einer anderen Reihenfolge sind nicht gleich.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {3, 2, 1};
System.out.println(Arrays.equals(a, b));
}
}Objekt-Arrays vergleichen
Bei Objekt-Arrays vergleicht Arrays.equals die Elemente mithilfe ihrer eigenen equals-Methode.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] a = {"x", "y", "z"};
String[] b = {"x", "y", "z"};
System.out.println(Arrays.equals(a, b));
}
}toString für eine lesbare Ausgabe
Wenn Sie ein Array direkt ausgeben, wird etwas wie [I@1b6d3586 angezeigt, also der Klassenname und der Hashwert. Arrays.toString erzeugt die lesbare Form [1, 2, 3].
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {1, 2, 3};
System.out.println(nums);
System.out.println(Arrays.toString(nums));
}
}Verschachtelte Arrays: deepEquals
Bei Arrays aus Arrays prüft equals lediglich die äußeren Referenzen der einzelnen Zeilen. Verwenden Sie Arrays.deepEquals, um verschachtelte Inhalte zu vergleichen.
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(Arrays.equals(a, b));
System.out.println(Arrays.deepEquals(a, b));
}
}Verschachtelte Arrays: deepToString
Ebenso gibt Arrays.deepToString verschachtelte Arrays übersichtlich aus, während das einfache toString die inneren Referenzen anzeigen würde.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[][] grid = {{1, 2}, {3, 4}};
System.out.println(Arrays.toString(grid));
System.out.println(Arrays.deepToString(grid));
}
}hashCode für Arrays
Wenn Sie einen inhaltsbasierten Hash benötigen, verwenden Sie Arrays.hashCode und bei verschachtelten Arrays Arrays.deepHashCode. Diese Methoden sind mit Arrays.equals konsistent.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
System.out.println(Arrays.hashCode(a) == Arrays.hashCode(b));
}
}Nach dem Sortieren vergleichen
Um zu prüfen, ob zwei Arrays unabhängig von der Reihenfolge dieselbe Multimenge von Werten enthalten, sortieren Sie Kopien beider Arrays und vergleichen sie anschließend mit Arrays.equals.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = {3, 1, 2};
int[] b = {2, 3, 1};
int[] ca = Arrays.copyOf(a, a.length);
int[] cb = Arrays.copyOf(b, b.length);
Arrays.sort(ca);
Arrays.sort(cb);
System.out.println(Arrays.equals(ca, cb));
}
}Einfaches Protokollieren
Umschließen Sie beim Debuggen Arrays in Arrays.toString innerhalb von Ausgabebefehlen, damit Sie die Werte tatsächlich lesen können und nicht nur kryptische Referenzen sehen.
Kurzer Test
Testen Sie Ihr Verständnis vom Vergleichen von Arrays.
Zusammenfassung
Sie haben gelernt, Arrays zu vergleichen und auszugeben.
==vergleicht Referenzen; verwenden SieArrays.equalsfür den Inhaltsvergleich.- Sowohl Reihenfolge als auch Länge sind entscheidend.
Arrays.toStringliefert eine lesbare Ausgabe;deepToStringverarbeitet Verschachtelungen.deepEqualsvergleicht verschachtelte Arrays.
Häufig gestellte Fragen
Ist die Lektion „Arrays.equals und toString“ kostenlos?
Ja — der vollständige Text von „Arrays.equals und toString“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Arrays.equals und toString“?
Arrays vergleichen und ausgeben Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Arrays.equals und toString“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Arrays.sort und Sortieren
- Arrays.binarySearch
- Arrays.fill und copyOf
- Arrays.equals und toString