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,我目前正在为一个初级班做家庭作业,我需要帮助建立一个程序,测试以int[][]表示的sodoku解决方案是否有效。我通过创建检查行、列和网格的助手方法来实现这一点 要检查列,我调用一个名为getColumn的方法,该方法返回一个列[]。当我测试它时,它工作正常。然后我将它传递给一个名为Uniquentries的方法,该方法确保没有重复项 问题是,当我调用getColumn方法时,它返回一个只包含一个数字的数组(例如11111111、222222、33333333)。我不知道为什么会这样。这是我的

我目前正在为一个初级班做家庭作业,我需要帮助建立一个程序,测试以int[][]表示的sodoku解决方案是否有效。我通过创建检查行、列和网格的助手方法来实现这一点

要检查列,我调用一个名为getColumn的方法,该方法返回一个列[]。当我测试它时,它工作正常。然后我将它传递给一个名为Uniquentries的方法,该方法确保没有重复项

问题是,当我调用getColumn方法时,它返回一个只包含一个数字的数组(例如11111111、222222、33333333)。我不知道为什么会这样。这是我的密码:

int[][] sodokuColumns = new int[length][length];

for(int k = 0 ; k < sodokuPuzzle.length ; k++) {
    sodokuColumns[k] = getColumn(sodokuPuzzle, k);
}

for (int l = 0; l < sodokuPuzzle.length; l++) {
    if(uniqueEntries(sodokuColumns[l]) == false) {
        columnStatus = false;
    }
}
int[]sodokuColumns=newint[length][length];
对于(int k=0;k
我的助手如下

public static int[] getColumn(int[][] intArray, int index) {

    int[] column = new int[intArray.length];

    for(int i = 0 ; i < intArray.length ; i++) {
        column[i] = intArray[i][index];
    }
    return column; 
}
public static int[]getColumn(int[]intArray,int index){
int[]列=新的int[intArray.length];
for(int i=0;i
谢谢

你说:

当我调用getColumn方法时,它返回一个只包含一个数字的数组(例如11111111、2222222、33333333)

我认为你的
getColumn
方法没有任何问题,除了它根本不需要之外,因为
getColumn(sodokuPuzzle,k)
sodokuPuzzle[k]
是一样的。如果要以第一个索引为列的方式对2D数组进行概念化,那么为了检查唯一性,只需编写一个获取行的方法

您遇到的问题似乎与代码中未共享的另一部分有关。我怀疑在接受用户输入的逻辑中有一个错误,它错误地填充了拼图

最后一个检查唯一性的技巧(如果允许使用的话)是创建某种类型的
(例如
哈希集
),并将所有项(在您的情况下是整数)添加到该集。如果集合与原始项目数组的大小相同,则项目都是唯一的,如果大小不同,则会有重复项。

您说过:

当我调用getColumn方法时,它返回一个只包含一个数字的数组(例如11111111、2222222、33333333)

我认为你的
getColumn
方法没有任何问题,除了它根本不需要之外,因为
getColumn(sodokuPuzzle,k)
sodokuPuzzle[k]
是一样的。如果要以第一个索引为列的方式对2D数组进行概念化,那么为了检查唯一性,只需编写一个获取行的方法

您遇到的问题似乎与代码中未共享的另一部分有关。我怀疑在接受用户输入的逻辑中有一个错误,它错误地填充了拼图


最后一个检查唯一性的技巧(如果允许使用的话)是创建某种类型的
(例如
哈希集
),并将所有项(在您的情况下是整数)添加到该集。如果集合的大小与原始项目数组的大小相同,则项目都是唯一的,如果大小不同,则存在重复项。

很难说。sodokuPuzzle中有什么数据?@Eskalior会得到行,而不是列,这取决于OP在他们头脑中如何定义它们。很难说。sodokuPuzzle中有哪些数据?@Eskalior可以获取行,而不是列,这取决于OP在其头部如何定义它们。