欢迎您来到尚观教育——13年运营 精准教学 口碑见证 全国咨询热线:010-62113016

当前位置

Java的二维数组
Java的二维数组
时间:2018-04-10    来源:尚观

大家对一维数组都熟悉了吧?接下来可说的是二维哟,就从字面上就可以看出来就是 ~你比一维多一维(这里请用《五环之歌》代入),不过大家也不必要惊慌,就是稍微有一点点复杂,只要你把一维数组理解透了,这二维都不是事儿!

1.1 二维数组

在程序中可以通过一个数组来保存某个班级学生的考试成绩,试想一下,如果要统计一个学校各个班级学生的考试成绩,又该如何实现呢?这时就需要用到多维数组,多维数组可以简单地理解为在数组中嵌套数组。在程序中比较常见的就是二维数组,接下来针对二维数组进行详细地讲解。

1.1.1 二维数组的定义格式

二维数组的定义有很多方式,接下来针对几种常见的方式进行详细地讲解,具体如下:

第一种方式:

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

上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组,接下来通过一个图来表示这种情况,如下图所示。

图片1.png

图1-1 二维数组

第二种方式:

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

第二种方式和第一种类似,只是数组中每个元素的长度不确定,接下来通过一个图来表示这种情况,如下图所示。

图片2.png

图1-2 二维数组

第三种方式:

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

上面的二维数组中定义了三个元素,这三个元素都是数组,分别为{1,2}、{3,4,5,6}、{7,8,9},接下来通过一个图来表示这种情况,如图2-54所示。

图片3.png

图1-3 二维数组

对二维数组中元素的访问也是通过角标的方式,如需访问二维数组中第一个元素数组的第二个元素,具体代码如下:

arr[0][1];

1.1.2 二维数组元素的访问

操作二维数组时,经常需要获取数组中元素的值。接下来通过一个案例来演示如何获取数组中元素值,如下所示。ArrayDemo08.java

class ArrayDemo08 {

public static void main(String[] args){


    //定义二维数组的方式

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

    

    System.out.println( arr );

    System.out.println("二维数组的长度: " + arr.length);

    //获取二维数组的3个元素

    System.out.println( arr[0] );

    System.out.println( arr[1] );

    System.out.println( arr[2] );

    

    System.out.println("打印第一个一维数组的元素值");

    System.out.println( arr[0][0] );

    System.out.println( arr[0][1] );//访问的为二维数组中第1个一维数组的第2个元素

    System.out.println( arr[0][2] );

    System.out.println( arr[0][3] );

    

    System.out.println("打印第二个一维数组的元素值");

    System.out.println( arr[1][0] );

    System.out.println( arr[1][1] );

    System.out.println( arr[1][2] );

    System.out.println( arr[1][3] );

    

    System.out.println("打印第三个一维数组的元素值");

    System.out.println( arr[2][0] );

    System.out.println( arr[2][1] );

    System.out.println( arr[2][2] );

    System.out.println( arr[2][3] );

    }

}

运行结果如下图所示:

图片4.png

图1-4 运行结果

 

1.1.3 二维数组元素遍历与数组元素累加和

学习完了数组元素的访问,我们来学习下数组的遍历及数组的元素累加和操作。

class ArrayDemo09 {

    public static void main(String[] args){

        //一维数组的求累加和并遍历

        int[] arr = {10,20,30,40,50};

        int sum = 0;

            for (int i=0; i<arr.length; i++) {

                          //System.out.println(arr[i]);

            sum += arr[i];

            }

        System.out.println("sum= " + sum);

        System.out.println("---------------------");

        

        //二维数组的求累加和并遍历

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

        int sum2 = 0;

        for (int i=0; i<arr2.length; i++) {

            for (int j=0; j<arr2[i].length; j++) {

                             //System.out.println(arr2[i][j])

            sum2 += arr2[i][j];

            }

        }

        System.out.println("sum2= "+ sum2);

    }

}

运行结果如下图所示:

图片5.png

图1-5 运行结果

1.1.4 公司销售总和练习

接下来通过一个案例来熟悉二维数组的使用。

例如要统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额。如下所示

第一小组销售额为{11, 12}万元

第二小组销售额为{21, 22, 23}万元

第三小组销售额为{31, 32, 33, 34}万元。

ArrayDemo08.java

public class ArrayDemo10 {

public static void main(String[] args) {

 int[][] arr = new int[3][]; // 定义一个长度为3的二维数组

 arr[0] = new int[] { 11, 12 }; // 为数组的元素赋值

 arr[1] = new int[] { 21, 22, 23 };

 arr[2] = new int[] { 31, 32, 33, 34 };

 

 int sum = 0; // 定义变量记录总销售额

 for (int i = 0; i < arr.length; i++) { // 遍历数组元素

10    int groupSum = 0; // 定义变量记录小组销售总额

11    for (int j = 0; j < arr[i].length; j++) { // 遍历小组内每个人的销售额

12     groupSum = groupSum + arr[i][j];

13    }

14    sum = sum + groupSum; // 累加小组销售额

15    System.out.println("第" + (i + 1) + "小组销售额为:" + groupSum + " 万元");

16   }

17   System.out.println("总销售额为: " + sum + " 万元");

18  }

19 }

运行结果如下图所示。

图片6.png

图1-6 运行结果

在上述代码中,第3行代码定义了一个长度为3的二维数组,并在4~6行代码中为数组的每个元素赋值。例程中还定义了两个变量sum和groupSum,其中sum用来记录公司的总销售额,groupSum用来记录每个销售小组的销售额。当通过嵌套for循环统计销售额时,外层循环对三个销售小组进行遍历,内层循环对每个小组员工的销售额进行遍历,内层循环每循环一次就相当于将一个小组员工的销售总额统计完毕,赋值给groupSum,然后把groupSum的值与sum的值相加赋值给sum。当外层循环结束时,三个销售小组的销售总额groupSum都累加到sum中,即统计出了整个公司的销售总额。

怎么样?没有想象中那么难吧?只要你认认真真对待我说的每一个知识点,理解透里面的每一个知识点。你会发现其实很简单的!

 


分享至: