Vergleichen Arrays in Java

Mehvish Ashiq 12 Oktober 2023
  1. Verwenden Sie den Operator ==, um Arrays in Java zu vergleichen
  2. Verwenden Sie die Methode Arrays.equals() zum Vergleichen von Arrays in Java
  3. Verwenden Sie die Methode Arrays.deepEquals() zum Vergleichen von Arrays in Java
  4. Verwenden Sie die for-Schleife, um Arrays in Java zu vergleichen
Vergleichen Arrays in Java

Heute werden wir verschiedene Codeschnipsel schreiben, um Arrays in Java zu vergleichen. Wir werden sehen, wie wir den Operator ==, Arrays.equals(), Arrays.deepEquals() und eine benutzerdefinierte Funktion verwenden können, die eine for-Schleife enthält, um Arrays in Java zu vergleichen.

Verwenden Sie den Operator ==, um Arrays in Java zu vergleichen

Beispielcode:

public class compareArrays {
  public static void main(String[] args) {
    int array1[] = {2, 4, 6};
    int array2[] = {2, 4, 6};
    if (array1 == array2)
      System.out.println("Both arrays are the same");
    else
      System.out.println("Both arrays are not the same");
  }
}

Ausgabe:

Both arrays are not the same

In der Funktion main haben wir zwei Arrays, array1 und array2, die sich auf zwei verschiedene Objekte beziehen. Es werden also die beiden unterschiedlichen Referenzvariablen verglichen, was zu Both arrays are not the same führt.

Verwenden Sie die Methode Arrays.equals() zum Vergleichen von Arrays in Java

Beispielcode:

import java.util.Arrays;

public class compareArrays {
  public static void main(String[] args) {
    int array1[] = {2, 4, 6};
    int array2[] = {2, 4, 6};
    if (Arrays.equals(array1, array2))
      System.out.println("Both arrays are the same");
    else
      System.out.println("Both arrays are not the same");
  }
}

Ausgabe:

Both arrays are the same

Diese main-Methode enthält auch zwei Arrays namens array1 und array2. Hier verwenden wir die Methode Arrays.equals(), die sich in Arrays Class befindet und zwei Arrays nimmt und ihren Inhalt vergleicht.

Angenommen, wir haben zwei 2D-Arrays, die wir vergleichen müssen. Können wir den gleichen Ansatz wie oben für einen gründlichen Vergleich nutzen? Nein.

In der Klasse Java Arrays haben wir verschiedene equals()-Methoden für primitive Typen wie int, char usw. Und eine equals()-Methode für die Object-Klasse, aber wir können sie nicht verwenden Führen Sie den tiefen Vergleich für zweidimensionale Arrays durch.

Beispielcode:

import java.util.Arrays;

public class compareArrays {
  public static void main(String[] args) {
    int innerArray1[] = {2, 4, 6};
    int innerArray2[] = {2, 4, 6};
    Object outerArray1[] = {innerArray1};
    Object outerArray2[] = {innerArray2};

    if (Arrays.equals(outerArray1, outerArray2))
      System.out.println("Both arrays are the same");
    else
      System.out.println("Both arrays are not the same");
  }
}

Ausgabe:

Both arrays are not the same

Wir können die Methode deepEquals() für einen tiefen Vergleich verwenden, was hilfreich ist, wenn wir zweidimensionale Arrays haben.

Verwenden Sie die Methode Arrays.deepEquals() zum Vergleichen von Arrays in Java

Beispielcode:

import java.util.Arrays;

public class compareArrays {
  public static void main(String[] args) {
    int innerArray1[] = {2, 4, 6};
    int innerArray2[] = {2, 4, 6};
    Object outerArray1[] = {innerArray1};
    Object outerArray2[] = {innerArray2};

    if (Arrays.deepEquals(outerArray1, outerArray2))
      System.out.println("Both arrays are the same");
    else
      System.out.println("Both arrays are not the same");
  }
}

Ausgabe:

Both arrays are the same

Die Methode deepEquals() funktioniert gut für einen tiefen Vergleich. Die Methode Arrays.deepEquals() prüft, ob zwei Arrays gleich sind oder nicht.

Diese beiden Arrays können ein-, zwei- oder sogar mehrdimensional sein.

Wie entscheidet diese Methode, ob die bereitgestellten Arrays gleich sind oder nicht? Dazu müssen Sie folgende Punkte beachten:

  • Wenn die Referenzen beider bereitgestellter Arrays null sind, wären die Arrays zutiefst gleich.
  • Wir können zwei Array-Referenzen als absolut gleich deklarieren, wenn sie auf die Arrays zeigen, die die genaue Elementnummer und die entsprechenden Elementpaare enthalten.
  • Zwei Elemente, element1 und element2, die möglicherweise null sind, wären absolut gleich, wenn eine Bedingung aus der folgenden Liste zutrifft:
    • Arrays.deepEquals(element1, element2) gibt true zurück, wenn der Typ beider Arrays eine Objektreferenz ist.
    • Arrays.equals(element1, element2) gibt true zurück, wenn beide Arrays vom exakten primitiven Typ sind.
    • element1 == element2
    • element1.equals(element2) gibt true zurück.

Verwenden Sie die for-Schleife, um Arrays in Java zu vergleichen

Beispielcode:

public class compareArrays {
  public static boolean compare(int[] array1, int[] array2) {
    boolean flag = true;

    if (array1 != null && array2 != null) {
      if (array1.length != array2.length)
        flag = false;
      else
        for (int i = 0; i < array2.length; i++) {
          if (array2[i] != array1[i]) {
            flag = false;
          }
        }
    } else {
      flag = false;
    }

    return flag;
  }

  public static void main(String[] args) {
    int array1[] = {2, 4, 6};
    int array2[] = {2, 4, 6};

    if (compare(array1, array2))
      System.out.println("Both arrays are the same");
    else
      System.out.println("Both arrays are not the same");
  }
}

Ausgabe:

Both arrays are the same

Hier schreiben wir eine compare()-Funktion, die zwei Arrays in den Typ int bringt. Es vergleicht sie auf Ebene der einzelnen Elemente mit der for-Schleife und gibt wahr zurück, wenn beide Arrays gleich sind; andernfalls falsch.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - Java Array