招生考试网
学历类| 阳光高考 美术高考 研究生 自考 成人高考 专升本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 论文 驾照考试 书法等级 少儿英语 报检员 单证员 教案 专题 考试资讯 文档
 3773考试网 - 计算机等级考试 - 模拟试题 - 正文

2013计算机二级Java多维数组学习教程

来源:2exam.com 2013-6-14
2013计算机二级Java多维数组学习教程

5.2 多维数组

   维数为二维或高于二维的数组称为多维数组,在java中并没有真正的多维数组,只有数组的数组。

   5.2.1 二维数组的声明

   二维数组与一维数组的声明类似,只是需要用两个“[]”来表明是二维数组的声明,格式如下:

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

   或

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

   或

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

   其中:数据类型可以是java的基本类型和引用类型,数组名要求是一个合法的标识符,两个“[]”,表示是一个二维数组。

   5.2.2 二维数组的初始化

   同一维数组一样,只声明了数组,这时候其值为null,要想使用数组,还需要做初始化工作。数组初始化为声明的数组指定数组元素个数,为数组元素分配空间并赋值。数组初始化可以通过如下几种方式完成。

   1. 用new关键字初始化数组

   用关键字new初始化数组时,除了为数组指定数组元素个数、分配存储空间外,还会为数组元素按照数据类型的不同赋初值。具体如下:

   若为数值型,数组元素的默认值为0,;

   若为布尔型,数组元素的默认值为false;

   若为引用型,数组元素的默认值为空(null)。

   (1)先声明数组,在初始化数组。这里实际上是两条语句,具体格式如下:

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

   数组名=new 数据类型[length1][length2];

   第一条语句是数组声明语句,第二条语句则是初始化语句。要求这两条语句中数组名、数据类型必须一致。Length1指定数组的行数,length2指定数组的列数。

   数组的Length1和Length2可以是直接的int类型常数,也可以是已经赋值的int类型变量或int类型表达式。

   例如:

   int m=3,n=2;

   int[] a;

   a = new int[m][n];

   上面的语句声明并初始化一个3行两列的数组a,同时,根据默认值的约定,数组a中的所有元素初值均为0

   (2)在声明数组的同时用new关键字初始化数组。实际上,这种方式是将第一种方式的两条语句合并为一条语句。格式如下:

   数据类型[][] 数组名 =new 数据类型[length1][length2];

   或

   数据类型 数组名[][]=new 数据类型[length1][length2];

   例如:

   int m=3,n=2;

   int[][] a = new int[m][n];

   2.用一个已经初始化的数组对数组初始化

   可以直接使用一个已经初始化的数组对新声明的数组进行初始化。

   格式如下:

   数据类型[][] 数组名=已初始化数组

   例如:

   Int[][]a=new int[10][10];

   Int[][]b=a;

   同一维数组一样,这种初始化会使得数组a与b具有相同的存储地址,a数组与b数组指向了同一个物理地址,任何对数组a的改变都会使数组b做相应的修改,同样,任何对数组b的修改也会使a数组的内容发生变化。

   3.直接指定初值的方式

   用直接指定初值的方式初始化数组是指在声明数组的同时将数组元素的初值依次写入赋值号(=)后的一对大括号({})内,大括号中的每个元素也是一对大括号。如:

   int a [][] = {{1,2},{3,4},{5,6}};

   这样就定义了一个3行2列的数组。

   5.2.3 不规则数组

   像其他语言一样,在定义二维数组时,我们可以使用“int a[][]=new int[3][2]”的方式创建3行2列的数组,这样的数组是规则的,与数学上的矩阵一样。在java中我们还可以定义列数不同的数组,对于列数不同的数组称之为不规则数组。

   不规则数组的定义有两种方式。

   1.直接指定初值方式

   如下语句:

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

   就定义了一个不规则数组,这样,数组中各元素包括:

   a[0][0], a[0][1], a[0][2],

   a[1][0], a[1][1],

   a[2][0], a[2][1], a[2][2], a[2][3],

   其他元素的访问则会导致数组下标异常错误,如

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

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

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

   都会产生异常

   2.用new关键字初始化数组

   除了直接指定初值的方式外,还可以使用new关键字创建不规则数组,如下语句同样创建了一个不规则数组:

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

   arr[0]=new int[3];

   arr[1]=new int[2];

   arr[2]=new int[4];

   这里需要注意的是“int[ ][ ] arr=new int[3][];”语句与C++的定义方式正好相反,在C++中,数组的定义形式为“int[ ][ ] arr=new int[][3];”,读者一定不要混淆。

   不规则数组的好处是可以节省存储空间,对于列不是完全相同的时候可以使用,在下面的杨辉三角形的例子中使用的就是不规则数组。

  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
    最新文章

    报名考试全国   黑龙江   吉林   辽宁   内蒙古   青海   宁夏   甘肃   新疆   陕西   西藏   北京   天津   河北   山东   江苏   安徽   河南
    上海   浙江   福建   广东   山西   湖南   湖北   江西   广西   海南   云南   贵州   四川   重庆
    分省高校计算机考试黑龙江   吉林   辽宁   内蒙古   河北   北京   天津   新疆   甘肃   宁夏   青海   陕西   山西   河南   山东   江苏   安徽   浙江
    福建   广东   海南   广西   江西   湖北   湖南   四川   上海   重庆   贵州   云南   西藏
    成绩查询
    报考指南
    试题答案
    模拟试题
    考试辅导计算机一级   计算机二级   计算机三级   计算机四级
    经验交流
    高校计算机

    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号