初识“数据巨轮”:数组 | 带你学《Java面向对象编程》之十四

上一篇:六组案例一举拿下Java实体类 | 带你学《Java面向对象编程》之十三
【本节目标】
通过阅读本节内容,你将接触到Java中常用的一类数据:数组,并初步掌握其多种定义及初始化方法,通过for循环实现对简单数组的各种运用。
所有的项目开发之中都一定会存在有数组的使用,但是本次所讲解的只是数组的基本概念,而基本形式的数组出现的几率会有,但是不高,并且也不会涉及到过多复杂的操作,这只是针对于自己编写的程序代码而言。

数组的基本概念

如果说现在要定义100个整型变量,那么按照传统的做法,现在的实现如下:
int i1,i2,i3……i100;
这种方式的确是可以进行定义,但是如果说着100个变量属于关联的一组变量,则按照此种模式定义出来的变量就不适合于程序维护了(没有任何的参考规律),所以在程序开发之中考虑到一组变量的整体维护,专门提供有数组的概念。数组的本质在于:一组相关变量的集合,但是需要注意的一点是:在Java中将数组定义为引用数据类型,所以数组的使用一定要牵扯到内存分配,那么首先就一定可以想到使用关键字new来处理。数组的定义格式:

  • 数组的动态初始化,初始化之后数组每一个元素的保存内容为其对应数据类型的默认值;

    • 声明并初始化数组:

      • 数据类型 数组名称 [] = new 数据类型 [长度];
      • 数据类型 [] 数组名称= new 数据类型 [长度];
  • 数组的静态初始化:在数组定义的时候就为其设置好了里面的内容;

    • 简化格式:数据类型 数组名称 [] ={数据1,数据2,数据3,…};
    • 完整格式:数据类型 数组名称 [] = new 数据类型 [] {数据1,数据2,数据3,…};

当创建了一个数组之后就可以按照如下的方式进行使用:

  • 数组里面可以通过脚标进行每一个元素的访问,脚标从0开始定义,所以可以使用的脚标范围:“0~数组长度-1”,同时一定要注意,如果使用的时候超过了数组脚标范围则会出现
    “ArrayIndexOutOfBoundsException”(数组越界)异常。
  • 使用数组是为了其可以进行方便的变量管理,所以在进行数组操作的时候往往会利用for循环来完成;
  • 对于数组的长度也可以使用“数组名称.length”属性进行获得。

范例:定义数组

public class ArrayDemo {
   public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
       int data [] = new int [3] ;
       System.out.println(data[0]) ;
       System.out.println(data[1]) ;
       System.out.println(data[2]) ;
   }
}

初识“数据巨轮”:数组   | 带你学《Java面向对象编程》之十四
图一 执行结果一

修改

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

变为

System.out.println(data[3]) ;

则会出现:数组越界

初识“数据巨轮”:数组   | 带你学《Java面向对象编程》之十四
图二 执行结果二

利用for循环:

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
       int data [] = new int [3] ;
       for(int x = 0 ; x < 3 ;x ++){
       System.out.println(data[x]) ;
       }
    }
}

初识“数据巨轮”:数组   | 带你学《Java面向对象编程》之十四
图三 执行结果三

利用“数组名称.length”属性获得数组长度:

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
        int data [] = new int [3] ;
        System.out.println(data.length) ;
        for(int x = 0 ; x < 3 ;x ++){
           System.out.println(data[x]) ;
        }
    }
}

初识“数据巨轮”:数组   | 带你学《Java面向对象编程》之十四
图四 执行结果四

所以:

public class ArrayDemo {
   public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
       int data [] = new int [3] ;
       for(int x = 0 ; x < data.length ;x ++){
           System.out.println(data[x]) ;
       }
    }
}

初识“数据巨轮”:数组   | 带你学《Java面向对象编程》之十四
图五 执行结果五

赋值:

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
        int data [] = new int [3] ;
        data [0] = 11 ;    //为数组设置内容
        data [1] = 23 ;    //为数组设置内容
        data [2] = 56 ;    //为数组设置内容
        for(int x = 0 ; x < data.length ;x ++){
           System.out.println(data[x]) ;
        }
    }
}

初识“数据巨轮”:数组   | 带你学《Java面向对象编程》之十四
图六 执行结果六

在以后进行项目的开发过程之中,见到最多的数组使用形式:进行数组的循环处理。
数组本身分为动态初始化与静态初始化,之前所讲的是动态初始化,动态初始化之后会发现数组之中的每一个元素的内容都是其对应数据类型的默认值,随后可以通过下标为数组进行内容的设置,如果现在不希望这么复杂,而是希望数组定义的时候就已经可以提供内容,则可以采用静态初始化的方式完成。
范例:使用静态初始化定义数组

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的静态初始化实现了数组的定义
        int data [] = new int [] {11,23,56} ;
        for(int x = 0 ; x < data.length ;x ++){
            System.out.println(data[x]) ;
        }
    }
}

初识“数据巨轮”:数组   | 带你学《Java面向对象编程》之十四
图七 执行结果七

对于数组的操作而言,基本上都是拿到数据后循环控制。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

又见引用--数组元素的奇妙之旅 | 带你学《Java面向对象编程》之十五
更多Java面向对象编程文章查看此处

上一篇:苹果也太不安全了 系统被曝存安全漏洞


下一篇:JS动态生成的元素,其对应的方法不响应(比如单击事件,鼠标移动事件等)