在java中比较二维整数数组的最佳方法

时间:2010-03-31 19:07:17

标签: java arrays compare

我想知道在二维整数数组之间进行比较的最佳,最快速和最简单的方法是什么。 数组的长度是一样的。 (其中一个数组是临时数组)

2 个答案:

答案 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并不真正具有真正的二维数组。它有数组数组。

此处显示嵌套数组的equalsdeepEquals之间的差异(请注意,默认情况下,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"

相关问题