基本上我希望能够存储这样的2D数组

int [][] preferredMoves = {
            {0,0}, {0, arrLength}, {length%2, arrLength},
            {0, length%2}, {arrLength, 0}, {0, length%2},
            {arrLength, arrLength}, {length%2, length%2},
            {arrLength, length%2}, {length%2, 0}
    };


在一个

int [] moves;


数组。

我确定这是可能的,因为我只是存储一个列表...,但是我似乎无法在任何地方找到有关此的信息...或者可能无法找到?

编辑
我正在处理矩阵。
我想将列表存储在单个数组中,然后返回该数组以在其他地方使用它。

所以每次我叫它时,我要做的就是这样...

int row = Computer.moves()[0];
    int col = Computer.moves()[1];


我还需要循环遍历包含2D数组的单个数组。

最佳答案

不确定这是否是您的意思,
但是您可以删除内部的{ ... },将其转换为一维数组:

int [] moves = {
        0, 0, 0, arrLength, length % 2, arrLength,
        0, length % 2, arrLength, 0, 0, length % 2,
        arrLength, arrLength, length % 2, length % 2,
        arrLength, length % 2, length % 2, 0
};


您可以使用以下公式将2D索引(i, j)转换为1D索引k

k = i * 2 + j;

07-26 01:12