物以类聚的变量集——数组

       数组的缘由:在程序编程中,我们常常有许多个相同类型的变量,如果一个个单独定义的话,不仅增加了编程的工作量,也使程序的可读性下降,还占用了较多的内存空间,为此,采用数组的方式,把相同类型的数据集合在一起。数组按照维度的不同,主要划分为一维数组、二维数组和多维数组。

  • 一维数组的声明

       java是一种强类型语言,任何变量在使用之前必须先定义和初始化,所以数组也遵循先声明与初始化再使用的规则。数组的定义一个是数组名,另一个是数组长度,数组长度确定后是不可改变的哦。

格式1:

数据类型[]  数组名 =null;  数组名 = new 数据类型[数组长度];

格式2:

数据类型[]  数组名 = new 数据类型[数组长度];

注意点:以上的 “数据类型[]  数组名 ”可以写成“ 数据类型 数组名[]”;  在jdk1.5以后,“数据类型[]  数组名 =null;”  可以写成   “数据类型[]  数组名;”

  • 一维数组的初始化

  初始化是对数组进行赋值,分为静态初始化和动态初始化。

  静态的初始化就是在给数组声明的同时就给数组分配内存空间(用new关键词)和赋值。

格式1:

数据类型[] 数组名 =  {元素值1,元素值2,元素值3,.....元素值n};

格式2:

数据类型[] 数组名 = new 数据类型[] {元素值1,元素值2,元素值3,.....元素值n};

  动态的初始化就是先指定数组的长度,由系统为这些元素赋值,每个元素的值都是取数据类型相对应的默认值,(数据类型包括基本数据类型和引用数据类型(接口、类和数组))之后再对数组的每个元素进行赋值。

  注意点:不可同时用动态初始化和静态初始化,即指定数组的长度的同时还为每一个元素赋值。

  • 访问数组元素

  使用数组最常见的方式是对数组的元素进行访问,而不是对数组变量进行操作,其格式如下: 数组名[下标元素]。

  注意点:如果你直接输出的数组名(不带下标元素),那么输出的将是数组的地址。

  例如:输出一个数组名的结果为[java.lang.String;@4e77b794,它的含义如下:

[:表示数组为一维数组;[[表示数组是二维数组;

java.lang.String;表示数组的类型是String ;

@4e77b794表示数组存放地址。

  • 获取数组的长度

  在对数组进行遍历之前,我们首先需要知道数组的长度,java语言提供了length属性,格式是数组名.length。

  • foreach遍历语句

  从JDK1.5开始,java提供了一种foreach语句,主要用来遍历数组和集合。与for循环不同的是,foreach语句不需要知道数组的长度。注意的是,foreach语句的作用就是遍历,不能用来循环改变数组元素的值。

格式:

    for(数据类型 变量名:数组名){};

----------------------------------------------------------

  二维数组是一个特殊的一维数组,只不过这个数组的元素是一个一维数组,而且每个元素的一维数组长度是不定的。类似于一个大家族(二维数组)里面有多个小家族(一维数组),每个小家族的元素个数(人数)是不一定相同的。

  • 二维数组的声明(常用的是格式3)

 格式1:

数据类型[]  数组名[] ;

格式2:

数据类型[] []  数组名;

格式3:

数据类型  数组名[][];

  • 二维数组的初始化

  二维数组的初始化也分为静态初始化和动态初始化。

静态初始化格式:

数据类型  数组名[][] = {{第0行元素值},{第一行元素值}......{第n行元素值}};

 数据类型  数组名[][] = new 数据类型[][]{{第0行元素值},{第一行元素值}......{第n行元素值}};

 动态初始化格式:

数据类型 数组名[][] = new 数据类型[行数][列数];

数组名 = new 数据类型[][] {{第0行元素值},{第一行元素值}......{第n行元素值}};

 注意点:二维数组的列数以包含元素最多的行元素个数作为列数。

  • 二维数组的行数和列数获取

   上面讲了一维数组的数组长度的获取方式是利用length属性,二维数组同样拥有这个属性,利用length属性得到的是二维数组里面{}的个数,也就是二维数组的行数。那么获取二维数组的列数怎么办呢?尤其在遍历二维数组时,它一个双循环,需要数组的行数和数组的列数。我们讲到过,二维数组是一个特殊的一维数组,里面的每一个行都是一个一维数组,再获取一次length属性就可以得到每一行的列数。

格式:数组名[第n行].length

   

 

posted @ 2020-11-19 12:37  dingzhiwen  阅读(135)  评论(0)    收藏  举报