如何在常规数组中存储2D数组? Java的

时间:2015-10-02 22:09:19

标签: java arrays multidimensional-array 2d

基本上我希望能够存储像这样的

这样的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数组的单个数组..

2 个答案:

答案 0 :(得分:3)

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

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;

答案 1 :(得分:0)

Janos的回答可能就是你想要的。或者你可以创建一个类,例如Pair,并将其存储在Pair[]数组中。