比较2d数组java中的元素?
如果我有一个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
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;
}
}