我想知道在二维整数数组之间进行比较的最佳,最快速和最简单的方法是什么。 数组的长度是一样的。 (其中一个数组是临时数组)
答案 0 :(得分:13)
Edan写道:
只需要查看值是否相同
如果您想检查所有元素的a[i][j]
等于b[i][j]
,请使用Arrays.deepEquals(a, b)
。
答案 1 :(得分:4)
看java.util.Arrays
;它有许多你应该熟悉的数组实用程序。
import java.util.Arrays;
int[][] arr1;
int[][] arr2;
//...
if (Arrays.deepEquals(arr1, arr2)) //...
来自the API:
如果两个指定的数组彼此非常相等,则返回
true
。与equals(Object[],Object[])
方法不同,此方法适用于任意深度的嵌套数组。
请注意,在Java中,int[][]
是Object[]
的子类型。 Java并不真正具有真正的二维数组。它有数组数组。
此处显示嵌套数组的equals
和deepEquals
之间的差异(请注意,默认情况下,Java会将零作为元素初始化为int
个数组。)
import java.util.Arrays;
//...
System.out.println((new int[1]).equals(new int[1]));
// prints "false"
System.out.println(Arrays.equals(
new int[1],
new int[1]
)); // prints "true"
// invoked equals(int[], int[]) overload
System.out.println(Arrays.equals(
new int[1][1],
new int[1][1]
)); // prints "false"
// invoked equals(Object[], Object[]) overload
System.out.println(Arrays.deepEquals(
new int[1][1],
new int[1][1]
)); // prints "true"