java - 我可以使用单个数组来填充创建多维数组吗?

标签 java arrays multidimensional-array

假设我有两个随机生成的数组(行和列),我希望它们用于填充多维数组。由于数组是行和列,多维数组将是矩阵[行][列]。只是我如何生成行的示例:

int[] rows = new int[20];         
for(int i = 0; i < rows.length; i++) {
rows[i] = (int)(Math.random()*1000 + 1);
    }
System.out.println("Rows Generated: " + Arrays.toString(randomArrayN));
  }
}

columns 数组也是这样构建的。有没有一种简单的方法来创建一个二维数组并使用这些数组来填充它们? 我知道这个语法是错误的,但基本上我想知道是否有办法做到这一点:

int matrix[][] = new int[rows][columns];

最佳答案

是的,你绝对可以,尽管这可能有点令人困惑。

您可以使用以下方法初始化 3d 数组:

// test is a 3d array
int[][][] test = {
          {
           {1, -2, 3}, 
           {2, 3, 4}
          }, 
          { 
           {-4, -5, 6, 9}, 
           {1}, 
           {2, 3}
          } 
};

我喜欢用 3D 物体来思考这个问题,比如正方棱镜。棱镜上的每一行(高度)都包含两个长度和宽度,即 x,y。在其他世界中,您有一个 2d 数组,一个值是列,另一个是行,在数组中使其成为 3d。

enter image description here

现在如果您想打印 3d 数组的值该怎么办? 只需这样做:

 for (int[][] array2D: test) {
    for (int[] array1D: array2D) {
       for(int item: array1D) {
          System.out.println(item);
       }
    }
 }

关于java - 我可以使用单个数组来填充创建多维数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53229189/

相关文章:

java - Hibernate 保留起始索引为 1 而不是 0 的列表

java - 如何将 Stanford CoreNLP Java 库与 Ruby 一起用于情感分析?

arrays - 从多维数组中删除 Nothing 值

c++ - 二维数组,在 C 中使用 calloc

javascript - Google 脚本 - 无法写入单个二维数组元素

java - 用java方法从网站读取和组织数据

java - 对于不返回内容的方法是否强制使用 void ?

java - 32 位应用程序可以在 Eclipse 中运行,但部署后不能运行。 (没有错误..)

javascript 查找值是否不在数组中

c - 为什么全局变量在不同的方法中表现不同?