优秀的编程知识分享平台

网站首页 > 技术文章 正文

数组的初始化方式有哪几种? 数组的初始化有两种方式

nanyue 2024-12-17 15:30:39 技术文章 4 ℃

问:数组的初始化方式有哪几种?

答:在Java语言中,一维数组的声明方式为type arrayName[]或type[]arrayName。

其中,type既可以是基本的数据类型,也可以是类,arrayName表示数组的名字,[]用来表示这个变量的类型为一维数组。

与C/C++语言不同的是,在Java语言中,数组被创建后会根据数组存放的数据类型初始化成对应的初始值(例如,int类型会初始化为0,对象会初始化为null)。另外一个不同之处是Java数组在定义时,并不会给数组元素分配存储空间,因此[]中不需要指定数组的长度,对于使用上面方式定义的数组在使用时还必须为之分配空间,分配方法为:

arrayName=newtype[arraySize];//arraySize表示数组的长度

在完成数组的声明后,需要对其进行初始化,下面介绍两种初始化方法:

1)int[]a=new int[5];//动态创建了一个包含5个整型值的数组,默认初始化为0

2)int[]a={1,2,3,4,5};//声明一个数组类型变量并初始化

当然,在使用时也可以把数组的声明和初始化分开来写,例如:

  1. int[]a;//声明一个数组类型的对象

aa=new int[5];//给数组a申请可以存放5个int类型大小的空间,默认值为0

  1. int[]a;//声明一个数组类型的对象

aa=new int[]{1,2,3,4,5};//给数组申请存储空间,并初始化为默认值

以上主要介绍了一维数组的声明与初始化的方式,下面介绍二维数组的声明与初始化的方式,二维数组有3种声明的方法:

1)type arrayName[][];

2)type[][]arrayName;

3)type[]arrayName[];

需要注意的是,在声明二维数组时,其中[]必须为空。

二维数组也可以用初始化列表的方式来进行初始化,其一般形式为:

Type arrayName[][]={{c11,c12,c13..},{c21,c22,c23..},{c31,c32,c33...}...};

除了以上介绍的方法以外,也可以通过new关键字来给数组申请存储空间,形式如下:

Type arrayname[][]=newtype[行数][列数]

与C/C++语言不同的是,在Java语言中,二维数组的第二维的长度可以不同。假如要定义一个有两行的二维数组,第一行有两列,第二行有三列,定义方法如下:

1)int[][]arr={{1,2},{3,4,5}};

2)int[][]a=new int[2][];

a[0]=new int[]{1,2};

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

对二维数组的访问也是通过下标来完成,一般形式为arryName[行号][列号]。

常见笔试题:

1.下列数组的定义中,哪3条是正确的?()

A.public int a[]

B.static int[]a

C.public[]int a

D.private int a[3]

E.private int[3]a[]

F.public final int[]a

答案:A、B、F。见上面讲解。

2.下列数组定义及赋值中,错误的是()。

A.int intArray[];

B.intArray=new int[3];intArray[1]=1;intArray[2]=2;intArray[3]=3;

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

D.int[][]a=new int[2][];a[0]=new int[3];a[1]=new int[3];

答案:B。B中对数组的访问越界了。数组大小为3,数组第一个元素为intArray[0],最后一个元素为intArray[2]。

3.下列说法中,错误的有()。

A.数组是一种对象

B.数组属于一种原生类

C.int number[]={31,23,33,43,35,63}

D.数组的大小可以任意改变

答案:B、D。原生类指未被实例化的类,数组一般指实例化、被分配空间的类,所以不属于原生类。

4.下列语句中,创建了一个数组实例的是()

A.int[]ia=new int[15];

B.float fa=new float[20];

C.char[]ca=“SomeString”;

D.int ia[][]={4,5,6}{1,2,3};

答案:A。见上面讲解。

最近发表
标签列表