在 Java 中比较两个表

在 Java 中,您可以通过比较数组的每个元素来比较两个数组。Arrays 提供了可用于在 Java.

中对两个数组进行 comparison 的方法,我们将学习如何使用 Arrays.equals()Arrays.deepEquals()with examples.

两个数组相等,如果它们具有:

  • 相同的类型。
  • 相同数量的元素。
  • 两个数组中的每对元素都相等。
  • 元素的顺序必须相同。

Arrays.equals() 方法 

Java 类 Arrays 提供方法 equals() 来比较两个表。它的原理是通过执行 traverse 来比较两个数组的元素.

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

方法 equals返回true如果数组的元素相等,则为 false.

示例:

import java.util.Arrays;

public class equals
{
public static void main (String[] args)
{
// 要比较的表
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};

//比较数组 array1 和 array2 与 equals
if method(Arrays.equals(array1, array2))
System.out.println(数组相等”);
else
System.out.println(数组不相等.”);

// 比较 array1 和 array3
if (Arrays.equals(array1, array3))
System.out.println(数组相等”);
else
System.out.println(数组不相等.”);
}
}
运行时:

数组等于
数组不等于.

Arrays.equals()比较两个数组的元素。

注意:如果两个数组包含在不同的对象中,但具有相同的值,则它们不相等,如以下示例所示。

public class comparisonArrays2
{
public static void main (String[] args)
{
// 要比较的表
String[] array1 = new String[] {a”, b”, c”, d”};
String[] array2 = 新字符串[] {a”, b”, c”, d”};
对象[] arrayObj1 = {array1};
对象[] arrayObj2 = {array2};

// 比较 arrayObj1 和 arrayObj2
if (Arrays.equals(arrayObj1, arrayObj2))
System.out.println(数组相等”);
else
System.out.println(数组不相等.”);
}
}

Execution:

数组不相等。

我们可以看到 Arrays.equals() 无法进行更深入的比较,要解决这个问题,您需要使用 deepEquals().

Arrays.deepEquals()

The Arrays提供了另一种更有效的方法,顾名思义,可以更深入地比较数组的内容。

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

deepEquals解析两个数组 t1T2 并进行比较。深入分析后,如果两者相等,则返回 ture,否则为 false.

Two 数组 t1 et t2 of 类型 如果它们至少具有以下属性之一,则它们相等:

  • t1 = t2
  • equals(t2) 返回 true.
  • 如果 t1 和 t2 具有相同的对象引用类型,则 deepEquals(t1,t2)返回 true.
  • 如果 t1 和 t2 具有相同的基元类型,则 等于(t1,t2)返回 true.

Example:

public class comparisonArrays3
{
public static void main (String[] args)
{
// 要比较的表
String[] array1 = new String[] {java”, php”, JavaScript”, C++”};
String[] array2 = new String[] {java”, php”, javascript”, c++”};
对象[] t1 = {array1};
对象[] t2 = {array2};

// 比较 arrayObj1 和 arrayObj2
if (Arrays.deepEquals(t1, t2))
System.out.println(数组相等”);
else
System.out.println(数组不相等.”);
}
}

运行时:

数组相等

参考:

Javadoc - 类 DeepEquals

Java.util.Arrays.equals(Object[], Object[]) 方法