Java.util.Arrays 类

如果两个指定的数组彼此深度相等,java.util.Arrays.deepEquals() 方法将返回 true。与 equals(Object[],Object[]) 方法不同,此方法适用于任意深度的嵌套数组。

如果两个数组引用都为 null,或者它们引用的数组包含相同数量的元素,并且两个数组中所有对应的元素对都深度相等,则认为两个数组引用深度相等。

如果满足以下任一条件,则两个可能为 null 的元素 e1 和 e2 深度相等:

  • e1 和 e2 都是对象引用类型的数组,并且 Arrays.deepEquals(e1, e2 ) 将返回 true。
  • e1 和 e2 是相同基元类型的数组,适当重载 Arrays.equals(e1, e2) 将返回 true。
  • e1 == e2
  • e1.equals(e2) 将返回 true。

语法

public static boolean deepEquals(Object[] a1,
                                 Object[] a2)

参数

a1 指定要测试相等性的第一个数组。
a2 指定要测试相等性的第二个数组。

返回值

如果两个数组都返回 true相等,否则返回 false。

异常

无。

示例:

在下面的示例中,java.util.Arrays.deepEquals() 方法用于检查两个 Object 数组是否相等。

import java.util.*;

public class MyClass {
  public static void main(String[] args) {
    //创建三个Object数组
    Object Arr1[] = {10, 2, -3, 35, 56};
    Object Arr2[] = {10, 2, -3, 35, 56};
    Object Arr3[] = {5, 1, -3, 20, 25};

    //检查Arr1和Arr2是否相等
    boolean result1 = Arrays.deepEquals(Arr1, Arr2);
    System.out.println("Are Arr1 and Arr2 equal?: "+ result1); 

    //检查Arr1和Arr3是否相等
    boolean result2 = Arrays.deepEquals(Arr1, Arr3);
    System.out.println("Are Arr1 and Arr3 equal?: "+ result2);  
  }
}

上述代码的输出将是:

Are Arr1 and Arr2 equal?: true
Are Arr1 and Arr3 equal?: false