Direkt zum Inhalt
Urkunden
Java SchlüsselwörterJava-ArraysJava Objektorientierte ProgrammierungJava File HandlingEinführung in JavaGrundlagen der Java-Sprache

Java Array compare()

In Java wird beim Vergleichen von Arrays geprüft, ob zwei Arrays in Bezug auf Länge und Inhalt gleich sind. Java hat zwar keine eingebaute compare() Methode speziell für Arrays, aber in der Klasse java.util.Arrays gibt es Hilfsmethoden, die den Vergleich von Arrays erleichtern.

Methoden zum Vergleich von Arrays

Arrays.equals()

Die Methode Arrays.equals() wird verwendet, um zwei Arrays auf Gleichheit zu vergleichen. Sie gibt true zurück, wenn beide Arrays die gleiche Länge haben und die entsprechenden Elemente gleich sind. Diese Methode ist überladen, um Arrays verschiedener primitiver Typen und Objekt-Arrays zu behandeln.

Syntax

boolean result = Arrays.equals(array1, array2);
  • array1 und array2: Die zu vergleichenden Arrays.
  • result: Ein boolescher Wert, der angibt, ob die Arrays gleich sind.

Arrays.deepEquals()

Für mehrdimensionale Arrays wird Arrays.deepEquals() verwendet. Diese Methode führt einen tiefen Vergleich von Arrayelementen durch, das heißt, sie vergleicht verschachtelte Arrays Element für Element.

Syntax

boolean result = Arrays.deepEquals(array1, array2);
  • array1 und array2: Die zu vergleichenden Arrays.
  • result: Ein boolescher Wert, der angibt, ob die Arrays zutiefst gleich sind.

Arrays.compare()

Die Methode Arrays.compare() vergleicht zwei Arrays lexikografisch. Sie gibt 0 zurück, wenn die Arrays gleich sind, eine negative ganze Zahl, wenn das erste Array lexikografisch kleiner ist, und eine positive ganze Zahl, wenn das erste Array lexikografisch größer ist. Diese Methode kann für Arrays verschiedener Typen wie Boolean, Byte, Char usw. verwendet werden.

Syntax

int result = Arrays.compare(array1, array2);
  • array1 und array2: Die zu vergleichenden Arrays.
  • result: Eine ganze Zahl, die das Ergebnis des lexikografischen Vergleichs angibt.

Beispiele

Beispiel 1: Primitive Arrays vergleichen

import java.util.Arrays;

public class ComparePrimitiveArrays {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {1, 2, 3};
        boolean isEqual = Arrays.equals(array1, array2);
        System.out.println("Are the primitive arrays equal? " + isEqual);
    }
}

In diesem Beispiel wird Arrays.equals() verwendet, um zwei Integer-Arrays zu vergleichen. Da beide Arrays die gleichen Elemente in der gleichen Reihenfolge enthalten, gibt die Methode true zurück.

Beispiel 2: Vergleich von mehrdimensionalen Arrays

import java.util.Arrays;

public class CompareMultidimensionalArrays {
    public static void main(String[] args) {
        int[][] array1 = {{1, 2}, {3, 4}};
        int[][] array2 = {{1, 2}, {3, 4}};
        boolean isEqual = Arrays.deepEquals(array1, array2);
        System.out.println("Are the multidimensional arrays equal? " + isEqual);
    }
}

In diesem Beispiel wird Arrays.deepEquals() verwendet, um zwei 2D-Arrays zu vergleichen. Die Methode gibt true zurück, weil die Arrays in Struktur und Inhalt identisch sind.

Beispiel 3: Lexikografischer Vergleich von Arrays

import java.util.Arrays;

public class CompareArraysLexicographically {
    public static void main(String[] args) {
        String[] array1 = {"Apple", "Banana"};
        String[] array2 = {"Apple", "Cherry"};
        int comparisonResult = Arrays.compare(array1, array2);
        System.out.println("Comparison result: " + comparisonResult);
    }
}

In diesem Beispiel wird Arrays.compare() verwendet, um zwei String-Arrays lexikografisch zu vergleichen. Die Methode gibt eine negative ganze Zahl zurück, weil "Banane" lexikografisch kleiner ist als "Kirsche".

Tipps und bewährte Praktiken

  • Verwende die richtige Methode: Verwende Arrays.equals() für eindimensionale Arrays und Arrays.deepEquals() für mehrdimensionale Arrays, um genaue Vergleiche zu gewährleisten.
  • Vermeide einen Referenzvergleich: Vermeide es, == zum Vergleichen von Arrays zu verwenden, da es auf Referenzgleichheit und nicht auf Inhaltsgleichheit prüft.
  • Umgang mit Null-Arrays: Sei vorsichtig, wenn du Arrays vergleichst, die null sein könnten. Erwäge das Hinzufügen von Nullprüfungen, um NullPointerException zu verhindern.
  • Berücksichtige die Leistung: Bei großen Arrays solltest du die Auswirkungen von tiefen Vergleichen auf die Leistung berücksichtigen, da sie sehr rechenintensiv sein können.

Java Grundlagen lernen

Baue deine Java-Kenntnisse von Grund auf auf und beherrsche Programmierkonzepte.
Kostenloses Lernen beginnen