【发布时间】:2022-01-17 10:27:38
【问题描述】:
我有一个函数可以将所有坐标打印到一个列表(列和行)中,其中我有 0 的网格。但是,我想对其进行处理并使用它来随机选择一个在那里生成 1 的位置。我该怎么做它?至于我,列表的输出看起来确实很乱。
代码:
public static void addNewNum(int[][]grid) {
List freeSpace = new ArrayList();
for(int row=0; row< grid.length; row++) {
for(int col=0; col< grid[row].length; col++) {
if (grid[row][col] ==0) {
freeSpace.add(col);
freeSpace.add(row);
}
}
System.out.println(Arrays.toString(freeSpace.toArray()));
}
}
作为我的输出:
1 2 3 4
================
1| 0 | 0 | 0 | 0 |
--+---+---+--
2| 0 | 0 | 0 | 0 |
--+---+---+--
3| 0 | 0 | 0 | 0 |
--+---+---+--
4| 0 | 0 | 0 | 0 |
================
[0, 0, 1, 0, 2, 0, 3, 0]
[0, 0, 1, 0, 2, 0, 3, 0, 0, 1, 1, 1, 2, 1, 3, 1]
[0, 0, 1, 0, 2, 0, 3, 0, 0, 1, 1, 1, 2, 1, 3, 1, 0, 2, 1, 2, 2, 2, 3, 2]
[0, 0, 1, 0, 2, 0, 3, 0, 0, 1, 1, 1, 2, 1, 3, 1, 0, 2, 1, 2, 2, 2, 3, 2, 0, 3, 1, 3, 2, 3, 3, 3]
列表以 col1,row1,col2,row2,col3,row3 的格式打印...而且我需要以某种方式随机选择靠近其他值的值,这样它们就像一个有效的坐标(我不能选择 col1, col2 或 row2,col3 )也许它做得更容易,我应该创建其他列表,但那是我想出的列表(列表的输出看起来有点奇怪)
所以基本上它应该像这样工作
- 带有坐标的生成列表
- 选择正确的坐标(例如:col2,row2)
- 将其更改为数组中的值 1
【问题讨论】:
-
正如您其他问题的答案所说,使用一个类来保存一对坐标。然后在
List中选择一个随机索引并使用这些坐标。
标签: java arrays list multidimensional-array