gpt4 book ai didi

java - 在 Java 中创建列表的二维数组

转载 作者:行者123 更新时间:2023-12-01 08:12:53 26 4
gpt4 key购买 nike

我正在尝试为数独创建一个二维列表数组。本质上 81 列出了每个包含数独网格中该框的可能解决方案。到目前为止,我已经尝试了多个声明,但是每当我尝试将值添加到列表时,它都会返回空指针异常。下面是一个示例,只需用数字 1-9 填充每个列表。

List<Integer>[][] sudoku = (List<Integer>[][]) new List[9][9];

for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
for (int k = 1; k < 10; ) {
sudoku[i][j].add(k);
}
}
}

我什至不确定列表的二维数组是解决这个问题的最佳方法,但到目前为止我已经从头开始完成了所有事情(对java的了解相对较低),所以我想继续下去用这个方法。原始代码如下:

List[][] sudoku = new List[9][9];

研究很快表明这并不能解决问题。

提前感谢您的帮助!

最佳答案

试试这个。总体思路是,创建一个主列表,然后在循环遍历它时创建一个内部列表。

    /* Declare your intended size. */
int mainGridSize = 81;
int innerGridSize = 9;

/* Your master grid. */
List<List<Integer>> mainList = new ArrayList<List<Integer>>(mainGridSize);

/* Your inner grid */
List<Integer> innerList = null;

/* Loop around the mastergrid */
for (int i=0; i<mainGridSize; i++) {

/* create one inner grid for each iteration of the main grid */
innerList = new ArrayList<Integer>(innerGridSize);

/* populate your inner grid */
for (int j=0; j<innerGridSize; j++)
innerList.add(j);

/* add it to your main list */
mainList.add(innerList);
}

图解:

enter image description here

如果您需要改变网格,只需更改 gridSize 的值即可。

关于java - 在 Java 中创建列表的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com