首页 文章

用于创建二维数组的语法

提问于
浏览
377

考虑:

int[][] multD = new int[5][];
multD[0] = new int[10];

这是你如何创建一个5行10列的二维数组?

我在网上看到了这段代码,但语法没有意义 .

11 回答

  • 2

    这些类型的数组在Java中称为锯齿状数组:

    int[][] multD = new int[3][];
    multD[0] = new int[3];
    multD[1] = new int[2];
    multD[2] = new int[5];
    

    在这种情况下,数组的每一行都包含不同数量的列 . 在上面的示例中,第一行将包含三列,第二行将包含两列,第三行包含五列 . 您可以在编译时初始化此数组,如下所示:

    int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}};
    

    您可以轻松迭代数组中的所有元素:

    for (int i = 0; i<multD.length; i++) {
        for (int j = 0; j<multD[i].length; j++) {
            System.out.print(multD[i][j] + "\t");
        }
        System.out.println();
    }
    
  • 27
    int rows = 5;
    int cols = 10;
    
    int[] multD = new int[rows * cols];
    
    for (int r = 0; r < rows; r++)
    {
      for (int c = 0; c < cols; c++)
      {
         int index = r * cols + c;
         multD[index] = index * 2;
      }
    }
    

    请享用!

  • 722

    您可以按照其他人提到的方式创建它们 . 还有一点需要补充:你甚至可以为每一行创建一个倾斜的二维数组,不一定具有相同数量的collumns,如下所示:

    int array[][] = new int[3][];
    array[0] = new int[3];
    array[1] = new int[2];
    array[2] = new int[5];
    
  • 4
    int [][] twoDim = new int [5][5];
    
    int a = (twoDim.length);//5
    int b = (twoDim[0].length);//5
    
    for(int i = 0; i < a; i++){ // 1 2 3 4 5
        for(int j = 0; j <b; j++) { // 1 2 3 4 5
            int x = (i+1)*(j+1);
            twoDim[i][j] = x;
            if (x<10) {
                System.out.print(" " + x + " ");
            } else {
                System.out.print(x + " ");
            }
        }//end of for J
        System.out.println();
    }//end of for i
    
  • 43

    试试这种方式:

    int a[][] = {{1,2}, {3,4}};
    
    int b[] = {1, 2, 3, 4};
    
  • 7

    请尝试以下方法:

    int[][] multi = new int[5][10];
    

    ...这是这样的简写:

    int[][] multi = new int[5][];
    multi[0] = new int[10];
    multi[1] = new int[10];
    multi[2] = new int[10];
    multi[3] = new int[10];
    multi[4] = new int[10];
    

    请注意,每个元素都将初始化为 int0 的默认值,因此上述内容也等同于:

    int[][] multi = new int[][]{
      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
    };
    
  • 7

    也可以通过以下方式声明它 . 这不是好设计,但它有效 .

    int[] twoDimIntArray[] = new int[5][10];
    
  • 7

    尝试:

    int[][] multD = new int[5][10];
    

    请注意,在您的代码中,只有2D数组的第一行被初始化为0.对于每个人来说,第2行到第5行都要't even exist. If you try to print them you' ll得到 null .

  • 1

    我们可以声明一个二维数组,并在声明时直接存储元素:

    int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
    

    这里int表示存储在数组中的整数类型元素,数组名称是'marks' . int是"{"和"}"括号内表示的所有元素的数据类型,因为数组是具有相同数据类型的元素的集合 .

    回到上面写的声明:每行元素都应该写在花括号内 . 每行中的行和元素应以逗号分隔 .

    现在观察一下这句话:你可以得到3行5列,所以JVM创建3 * 5 = 15块内存 . 这些块可以单独称为:

    marks[0][0]  marks[0][1]  marks[0][2]  marks[0][3]  marks[0][4]
    marks[1][0]  marks[1][1]  marks[1][2]  marks[1][3]  marks[1][4]
    marks[2][0]  marks[2][1]  marks[2][2]  marks[2][3]  marks[2][4]
    

    注意:
    如果要存储n个元素,则数组索引从零开始并以n-1结束 . 另一种创建二维数组的方法是首先声明数组,然后使用new运算符为它分配内存 .

    int marks[][];           // declare marks array
    marks = new int[3][5];   // allocate memory for storing 15 elements
    

    通过结合以上两点我们可以写:

    int marks[][] = new int[3][5];
    
  • 6

    在Java中,二维数组可以声明为与一维数组相同 . 在一维数组中,您可以像这样写

    int array[] = new int[5];
    

    其中int是数据类型,array []是数组声明, new array 是一个数组,其对象有五个索引 .

    像这样,您可以编写如下的二维数组 .

    int array[][];
      array = new int[3][4];
    

    这里 array 是一个int数据类型 . 我首先在这些类型的一维数组上声明,然后创建一个3行和4列数组 .

    在你的代码中

    int[][] multD = new int[5][];
    multD[0] = new int[10];
    

    意味着您已经创建了一个包含五行的二维数组 . 在第一行中有10列 . 在Java中,您可以根据需要为每行选择列大小 .

  • 67

    创建具有 5 行和 10 列的二维数组的最常用的习惯是:

    int[][] multD = new int[5][10];
    

    或者,您可以使用以下内容,它与您拥有的内容更相似,但您需要显式初始化每一行:

    int[][] multD = new int[5][];
    for (int i = 0; i < 5; i++) {
      multD[i] = new int[10];
    }
    

相关问题