如果两个指定的数组彼此深度相等,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