Java-二维数组

时间:2020-02-23 14:36:59  来源:igfitidea点击:

在本教程中,我们将学习Java编程语言中的二维数组。

我们使用二维2D数组以行和列格式存储数据。

声明二维数组

以下是声明2D数组的语法。

dataType[][] arrayName;

其中,数组变量的名称为" arrayName",其数据类型为" dataType"。

我们还可以通过以下方式声明2D数组。

dataType arrayName[][];

这类似于C编程语言。

在下面的示例中,我们声明一个数据类型为int的2D数组arr以存储整数值。

int[][] arr;

现在,让我们继续创建2D阵列。

创建二维数组

要创建2D数组,我们使用new关键字,如下所示。

arrayName = new dataType[row_size][col_size];

其中," arrayName"是数据类型为" dataType"的数组变量的名称,它的行数为" row_size",列数为" col_size"。

在下面的示例中,我们创建一个数组" arr",该数组具有2行3列,数据类型为" int"。

arr = new int[2][3];

二维数组的声明和创建

在下面的示例中,我们声明并创建一个二维数组arr,该数组具有2行3列,数据类型为int。

int[][] arr = new int[2][3];

2维数组赋值和访问2维数组的值

在下面的示例中,我们将创建一个2D数组" arr",该数组具有2行3列,数据类型为" int"。

为了访问数组的元素,我们使用了像arr [r] [c]这样的行索引和列索引来访问第r行和第c列的元素。

class Array2DExample {
  public static void main(String args[]) {
    //create an array
    int[][] arr = new int[2][3];

    //int variable
    int count = 1;
    
    //use for loop to assign value to an array
    for (int r = 0; r < 2; r++) {
      for (int c = 0; c < 3; c++) {
        arr[r][c] = count;
        count++;
      }
    }
    
    //print the value of the array
    for (int r = 0; r < 2; r++) {
      for (int c = 0; c < 3; c++) {
        System.out.print("arr[" + r + "][" + c + "] = " + arr[r][c] + " ");
      }
      System.out.println();
    }
  }
}
arr[0][0] = 1 arr[0][1] = 2 arr[0][2] = 3 
arr[1][0] = 4 arr[1][1] = 5 arr[1][2] = 6

分配值的另一种方法是使用大括号" {}"和使用逗号分隔的值。

class Array2DExample {
  public static void main(String args[]) {
    //create an array
    int[][] arr = {
      {1, 2, 3},
      {4, 5, 6}
    };
    
    //print the value of the array
    for (int r = 0; r < 2; r++) {
      for (int c = 0; c < 3; c++) {
        System.out.print("arr[" + r + "][" + c + "] = " + arr[r][c] + " ");
      }
      System.out.println();
    }
  }
}

我们甚至可以像下面这样按索引分配值。

class Array2DExample {
  public static void main(String args[]) {
    //create an array
    int[][] arr = new int[2][3];
    
    //assign value to 1st row having r-index 0
    arr[0][0] = 1;
    arr[0][1] = 2;
    arr[0][2] = 3;
    
    //assign value to 2nd row having r-index 1
    arr[1][0] = 4;
    arr[1][1] = 5;
    arr[1][2] = 6;
    
    //print the value of the array
    for (int r = 0; r < 2; r++) {
      for (int c = 0; c < 3; c++) {
        System.out.print("arr[" + r + "][" + c + "] = " + arr[r][c] + " ");
      }
      System.out.println();
    }
  }
}

二维数组的表示

下图描绘了二维数组" arr"。

//array having 2 rows and 3 columns
int[][] arr = {
      {1, 2, 3},
      {4, 5, 6}
    };

示例#1:编写一个Java程序以在三篇论文中找到两个学生的平均分数

假设第一名学生的分数是60、55和70,第二名学生的分数是80、60和41。

我们可以将两个学生的分数存储在具有2行3列的2D数组中。
行将代表学生,列将保留学生的分数。

class Array2DExample {
  public static void main(String args[]) {
    //create an array
    int[][] score = {
      {60, 55, 70},
      {80, 60, 41}
    };

    //sum array
    int[] sum = new int[2];

    //sum of 1st student
    sum[0] = 0;

    //sum of 2nd student
    sum[1] = 0;

    //average array
    float[] avg = new float[2];
    
    //compute sum
    for (int r = 0; r < 2; r++) {
      for (int c = 0; c < 3; c++) {
        sum[r] += score[r][c];
      }
    }
    
    //compute average of 1st student
    avg[0] = (float)sum[0]/3;
    
    //compute average of 2nd student
    avg[1] = (float)sum[1]/3;

    //print result
    System.out.println("Average score of 1st student = " + avg[0]);
    System.out.println("Average score of 2nd student = " + avg[1]);
  }
}
Average score of 1st student = 61.666668
Average score of 2nd student = 60.333332