java - 如何将二维数组存储在常规数组中? java

标签 java arrays multidimensional-array 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];

我还需要循环遍历该单个数组,其中多次包含二维数组..

最佳答案

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

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;

关于java - 如何将二维数组存储在常规数组中? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916563/

相关文章:

java - 数组未正确设置值

c++ - 在 C++ 中通过引用传递 unsigned char 数组

c++ - 为什么我们可以删除数组,但不知道 C/C++ 中的长度?

在共享内存中创建一个二维数组

Javascript:访问多维数组的属性

java - 在 java swing 中关闭和打开不同的窗口是否有终止应用程序的风险?

java - 以编程方式关闭 BlueCove 堆栈

java - String、String[] 的哈希表错误

java - 数组中元素的总和

java - map 旋转90度?