Vergleich zweier Tabellen in Java

In Java können Sie zwei Arrays vergleichen, indem Sie jedes Element des Arrays vergleichen. Die Klasse Arrays bietet Methoden, die für den Vergleich der beiden Arrays in Java.

nützlich sein können. Wir lernen, wie man zwei Arrays in Java mit der Methode Arrays.equals() und Arrays.deepEquals()with examples.

Zwei Arrays sind gleich, wenn sie:

  • Der gleiche Typ.
  • Die gleiche Anzahl von Elementen.
  • Jedes Elementpaar in beiden Arrays ist gleich.
  • Die Reihenfolge der Elemente muss gleich sein.

Die Methode Arrays.equals() 

Die Java-Klasse Arrays stellt die Methode equals() um zwei Tabellen zu vergleichen. Sein Prinzip besteht darin, die Elemente der beiden Arrays zu vergleichen, indem die traverse.

public static boolean equals(int[] a1, int[] a2)

Die Methode gleich gibt zurück true wenn die Elemente des Arrays gleich sind, sonst false.

Beispiel:

import java.util.Arrays; 

public class equals
{
public static void main (String[] args)
{
// zu vergleichende Tabellen
int[] array1 = new int[] {1, 2, 3, 4, 5};
int[] array2 = new int[] {1, 2, 3, 4, 5};
int[] array3 = new int[] {1, 2, 2, 4, 5};

//vergleichen Sie die Arrays array1 und array2 mit equals
if method(Arrays.equals(array1, array2))
System.out.println("Arrays sind gleich");
else
System.out.println("Arrays sind nicht gleich.");

// Vergleiche array1 mit array3
if (Arrays.equals(array1, array3))
System.out.println("Arrays sind gleich");
else
System.out.println("Arrays sind nicht gleich.");
}
}
Runtime:

Arrays equal
Arrays sind ungleich.

Die Methode Arrays.equals() vergleicht die Elemente der beiden Arrays.

Hinweis: Wenn die beiden Arrays in unterschiedlichen Objekten enthalten sind, aber die gleichen Werte haben, dann sind sie nicht gleich, wie im folgenden Beispiel gezeigt.

public class comparisonArrays2
{
public static void main (String[] args)
{
// zu vergleichende Tabellen
String[] array1 = new String[] {"a", "b", "c", "d"};
String[] array2 = new String[] {"a", "b", "c", "d"};
Objekt[] arrayObj1 = {array1};
Objekt[] arrayObj2 = {array2};

// Vergleich von arrayObj1 und arrayObj2
if (Arrays.equals(arrayObj1, arrayObj2))
System.out.println("Arrays sind gleich");
else
System.out.println("Arrays sind nicht gleich.");
}
}

Execution:

Arrays sind ungleich.

Wir können sehen, dass Arrays.equals() kann keinen tieferen Vergleich anstellen und um dies zu lösen, müssen Sie die Methode deepEquals().

Die Klasse Arrays.deepEquals()

Die Klasse Arrays bietet eine weitere, effizientere Methode, um den Inhalt von Arrays eingehender zu vergleichen, wie der Name schon sagt.

public static boolean deepEquals(Object[] t1, Object[] t2) 

Die Methode deepEquals beide Arrays analysieren t1 und T2 und vergleicht sie. Nach der Tiefenanalyse gibt es ture zurück, wenn die beiden gleich sind, andernfalls false.

Two arrays t1 et t2 vom Typ Objekt sind gleich, wenn sie mindestens eine der folgenden Eigenschaften haben:

  • t1 = t2
  • equals(t2) gibt true.
  • Wenn t1 und t2 denselben Objektreferenztyp haben, wird die Methode deepEquals(t1,t2) gibt true.
  • Wenn t1 und t2 denselben primitiven Typ haben, wird die Methode gleich(t1,t2) returns  true.

Example:

public class comparisonArrays3
{
public static void main (String[] args)
{
// zu vergleichende Tabellen
String[] array1 = new String[] {"java", "php", "javascript", "c++"};
String[] array2 = new String[] {"java", "php", "javascript", "c++"};
Objekt[] t1 = {array1};
Objekt[] t2 = {array2};

// Vergleich von arrayObj1 und arrayObj2
if (Arrays.deepEquals(t1, t2))
System.out.println("Arrays sind gleich");
else
System.out.println("Arrays sind nicht gleich.");
}
}

Runtime:

Arrays sind gleich

Referenzen:

Javadoc -  Klasse DeepEquals

Java.util.Arrays.equals(Object[], Object[]) Methode