在 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解析两个数组 t1 和 T2 并进行比较。深入分析后,如果两者相等,则返回 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(数组不相等.”);
}
}
运行时:
数组相等
参考: