我想知道比较两个二维整数数组的最佳、最快和最简单的方法。
数组的长度相同。(其中一个数组是临时数组)。
Edan写道:
只需要看值是否相同
如果您想要检查所有元素的a[i][j]
和b[i][j]
是否相等,只需使用Arrays.deepEquals(a, b)
即可。
请查看java.util.Arrays
,它有许多数组实用程序,您应该熟悉它们。
import java.util.Arrays;
int[][] arr1;
int[][] arr2;
//...
if (Arrays.deepEquals(arr1, arr2)) //...
来自 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"
Arrays.equals
就是你的好朋友。如果你所说的“比较”意味着其他事情,你能详细说明一下吗? - Will