以线及面--进入二维数组的世界 | 带你学《Java面向对象编程》之十六

上一篇:又见引用--数组元素的奇妙之旅 |带你学《Java面向对象编程》之十五
【本节目标】
通过阅读本节内容,你将拓展思维,以线及面,初步了解到数据的魅力,并学会二维数组的定义与初始化相关方法。

二维数组

在之前所定义的数组里面会发现只有一个“[]”,所以这个时候的数组就好像一行数据一样,可以利用下标进行行数据的访问。

  • 传统的数组就好比一行数据,如果要想找到一个数据只需要确定一个下标即可;

表一 传统数组
以线及面--进入二维数组的世界   | 带你学《Java面向对象编程》之十六

  • 如果说现在需要一个多行多列的结构(表),则就需要通过两个下标才可以描述出一个数据,行下标与列下标共同定义才可以找到,所以这样的数组形式就称为二维数组。

表二 二维数组
以线及面--进入二维数组的世界   | 带你学《Java面向对象编程》之十六

对于二维数组可以使用的定义语法如下:

  • 数组的动态初始化

    • 数据类型 数组名称 [][] = new 数据类型 行个数
  • 数组的静态初始化

    • 数据类型 数组名称 [][] =new 数据类型 [][] { {数据,数据,……},{数据,数据,……},{数据,数据,……},……}

范例:定义二维数组

public class ArrayDemo {
     public static void main (String args[ ]) {
         int data [] []= new int [] []{{1,2,3,4,5},{1,2,3},{5,6,7,8}} ;
     }
}

表三 表示程序结果
以线及面--进入二维数组的世界   | 带你学《Java面向对象编程》之十六

既然二维数组的每一行都属于一个数组,那么这种情况下就可以通过每一行的数组求出数组长度。

public class ArrayDemo {
   public static void main (String args[ ]) {
      int data [] []= new int [] []{{1,2,3,4,5},{1,2,3},{5,6,7,8}} ;
      for (int x = 0 ; x < data.length ; x ++ ){
         for(int y = 0 ;y <data[x].length ; y ++){
        System.out.println(“data[“+x+”][“+y+”] = ”+ data[x][y]) ;
         }
         System.out.println() ;    //换行
      }
   }
}

以线及面--进入二维数组的世界   | 带你学《Java面向对象编程》之十六
图一 执行结果一

如果这时要求使用foreach来进行输出呢?
范例:使用foreach输出二维数组

public class ArrayDemo {
     public static void main (String args[ ]) {
         int data [] []= new int [] []{{1,2,3,4,5},{1,2,3},{5,6,7,8}} ;
         for (int temp [] : data) {
            for(int num : temp) {
               Sysem.out.println(num + “、”)
             }
             System.out.println() ;    //换行
         }
    }
}

以线及面--进入二维数组的世界   | 带你学《Java面向对象编程》之十六
图二 执行结果二

通过foreach的输出格式可以清楚地观察到,二维数组就是数组的嵌套使用。随着尅发技术的发展,如果要进行一些应用层的程序开发,那么很少会涉及到二维数组,更不用说更高级的多维数组了。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:熟练运用数组,看这篇就够了 | 带你学《Java面向对象编程》之十七
更多Java面向对象编程文章查看此处

上一篇:JS引擎是如何工作的?从调用堆栈到Promise


下一篇:CAS 4.1.10关闭HTTPS