Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Java中的数组问题_Java_Arrays - Fatal编程技术网

Java中的数组问题

Java中的数组问题,java,arrays,Java,Arrays,我试图编写一些代码来获取矩阵9X9和两个数字:行-表示行数,列-表示列数。区域为小矩阵3X3。大矩阵包含9个3X3的小矩阵。该方法是布尔型的:如果小矩阵3X3的单元格中没有相等的数字,则该方法的输出为真,该小矩阵3X3将由行数和列数定位。(数字可以从1'到9) 我使用一个布尔数组,并利用它的索引,每当我遇到一个数字,我就会更新布尔数组中的索引单元格,如果我遇到两次true,我就会返回False。 当单元格为空时,可能会出现这种情况,无论何时,单元格都包含值“-1”。 代码可以编译,但不起作用。如

我试图编写一些代码来获取矩阵9X9和两个数字:行-表示行数,列-表示列数。区域为小矩阵3X3。大矩阵包含9个3X3的小矩阵。该方法是布尔型的:如果小矩阵3X3的单元格中没有相等的数字,则该方法的输出为真,该小矩阵3X3将由行数和列数定位。(数字可以从1'到9)

我使用一个布尔数组,并利用它的索引,每当我遇到一个数字,我就会更新布尔数组中的索引单元格,如果我遇到两次true,我就会返回False。 当单元格为空时,可能会出现这种情况,无论何时,单元格都包含值“-1”。 代码可以编译,但不起作用。如你所见,我正在搜索mod 3的边界

有人能认出虫子吗

public static boolean isZoneValid(int row, int col, int[][] matrix) {
    int fromrow = row - (row % 3);
    int fromcol = col - (col % 3);
    boolean[] ind = new boolean[9];
    Arrays.fill(ind, false);
    for (int i = fromrow; i < fromrow + 3; i++) {
        for (int j = fromcol; j < fromcol + 3; j++) {
            if (matrix[i][j] != -1) {
                if (ind[(matrix[i][j])-1] == true) {
                    return false;
                } else {
                    ind[(matrix[i][j]) - 1] = true;
                }

            }
        }

    }
    return true;
}
publicstaticbooleanevalid(int行、int列、int[][]矩阵){
int fromrow=行-(行%3);
int fromcol=col-(col%3);
boolean[]ind=新的boolean[9];
数组。填充(ind,false);
for(int i=fromrow;i
我编写了这个简单的测试,它通过了所有测试。你能提供一个不通过的测试吗

int[][] a = {{7, 8, 9}, {1, 2, 3}, {4, 5, 6}};
if (!isZoneValid(0, 0, a)) throw new AssertionError("a");
int[][] b = {{-1, -1, 9}, {-1, 2, 3}, {9, 5, 6}};
if (isZoneValid(0, 0, b)) throw new AssertionError("b");
int[][] c = {{-1, -1, -1}, {-1, -1, -1}, {-1, -1, -1}};
if (!isZoneValid(0, 0, c)) throw new AssertionError("c");

我写了这个简单的测试,它通过了所有测试。你能提供一个不通过的测试吗

int[][] a = {{7, 8, 9}, {1, 2, 3}, {4, 5, 6}};
if (!isZoneValid(0, 0, a)) throw new AssertionError("a");
int[][] b = {{-1, -1, 9}, {-1, 2, 3}, {9, 5, 6}};
if (isZoneValid(0, 0, b)) throw new AssertionError("b");
int[][] c = {{-1, -1, -1}, {-1, -1, -1}, {-1, -1, -1}};
if (!isZoneValid(0, 0, c)) throw new AssertionError("c");

你能把“它不起作用”说得更详细一点吗?我觉得它确实不错。是否可以添加导致错误输出的示例输入?删除
数组。填充(ind,false)<代码>布尔值
数组始终初始化为false。当您要检查第一行时-在行参数中传递0还是传递1?添加一些调试输出以在前后打印出矩阵。也许你只是把行和列混在一起了。用JUnitCan编写一些测试用例,您可以扩展到“它不工作”?在我看来,它确实不错。是否可以添加导致错误输出的示例输入?删除
数组。填充(ind,false)<代码>布尔值
数组始终初始化为false。当您要检查第一行时-在行参数中传递0还是传递1?添加一些调试输出以在前后打印出矩阵。也许你只是把行和列混在一起了。用JUnitI编写一些测试用例,我想这个方法很好。我想还有别的地方不对劲。我想这个方法很好。我想还有别的问题。