Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较2d数组java中的元素?_Java_Arrays - Fatal编程技术网

比较2d数组java中的元素?

比较2d数组java中的元素?,java,arrays,Java,Arrays,如果我有一个Java二维数组: 1 0 0 0 1 0 1 0 1 我还有一个更小或同等尺寸的: 1 0 0 1 如果第一个数组中的值区域等于第二个数组,如何查找匹配项 例如,如果我们将第一个数组拆分为多个不同的小数组,每个小数组的维数与第二个相同 这将是左上角: 1 0 0 1 这是右上角: 0 0 1 0 等等 如何检查第一个数组的拆分之一是否等于第二个数组 这是我用来定义数组的代码: public static void main(String argv[]) { in

如果我有一个Java二维数组:

1 0 0
0 1 0
1 0 1
我还有一个更小或同等尺寸的:

1 0
0 1
如果第一个数组中的值区域等于第二个数组,如何查找匹配项


例如,如果我们将第一个数组拆分为多个不同的小数组,每个小数组的维数与第二个相同

这将是左上角:

1 0
0 1
这是右上角:

0 0
1 0
等等

如何检查第一个数组的拆分之一是否等于第二个数组


这是我用来定义数组的代码:

public static void main(String argv[])
{
    int a[][] = { {1,0,0}, {0,1,0}, {1,0,1} };
    int element[][] = {{1,0}, {0,1}};
}

然后我尝试使用
数组。deepEquals(Array1,Array2)
来比较它们。

通过查看[x,y]到[x+1,y+1]中的值,可以在x和y处剪切数组

public static int[][] cut(int[][] source, int x, int y)
{
    return new int[][]{
        new int[]{ source[x][y], source[x + 1][y] },
        new int[]{ source[x][y + 1], source[x + 1][y + 1] }
    };
}
注意:此函数假定数组为正方形。然后迭代大数组,剪切和比较。因为我们的切割函数采用2x2数组,所以我们在x和y到达大数组的边缘之前停止(因此x
公共静态布尔测试(int[]]large,int[]]small)
{
对于(int x=0;x
这还不完全清楚。1是否要测试第一个阵列的所有子阵列?2您编写了什么代码?我相信OP正在尝试查看较小的2x2阵列是否是较大的3x3阵列的“一部分”。部分是4个2x2阵列,您可以从3x3中获得。不过,这只是一个猜测。@PJA堆栈溢出的目的是成为可搜索的编程问题和答案的存储库,以便其他人可以使用它来为他们的编程问题找到解决方案。如果你的问题写得不清楚,你应该把它写出来,并在问题本身提供更多的信息。虽然链接是很好的附加信息来源,但它们不能成为其主要来源,因为它们很容易断开,这将使您的问题对其他人毫无用处(我们也无法根据链接中的内容找到您的问题,尤其是如果是视频)。
public static boolean test(int[][] large, int[][] small)
{
    for (int x = 0; x < large.length - 1; x++)
        for (int y = 0; y < large[0].length - 1; y++)
        {
            int[][] part = cut(large, x, y);
            if (Arrays.deepEquals(part, small))
                return true;
        }
}