网站首页 > 基础教程 正文
问:数组的初始化方式有哪几种?
答:在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};//声明一个数组类型变量并初始化
当然,在使用时也可以把数组的声明和初始化分开来写,例如:
- int[]a;//声明一个数组类型的对象
aa=new int[5];//给数组a申请可以存放5个int类型大小的空间,默认值为0
- 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。见上面讲解。
- 上一篇: c++对于内建类型的默认初始化 创建内部类的对象
- 下一篇: C++系列1-1:初探C++ c=2μf
猜你喜欢
- 2024-10-10 C++系列1-1:初探C++ c=2μf
- 2024-10-10 浅谈C++11(第9篇 可变参数模板) c++可变参数模板类
- 2024-10-10 c++对于内建类型的默认初始化 创建内部类的对象
- 2024-10-10 C++类构造函数,如何初始化对象?linux C++第27讲
- 2024-10-10 【C++编程语言】之 类和对象——对象的初始和消除
- 2024-10-10 C++基础语法梳理:引用、封装、继承和多态
- 2024-10-10 C++核心准则?:按照成员声明的顺序定义和初始化成员变量
- 2024-10-10 C++核心准则C.47:按照成员变量声明的次序定义和初始化数据成员
- 2024-10-10 C/C++语言编程系列002——不同情况下数组的初始化方法
- 2024-10-10 c++面试常见问题汇总—建议收藏 c++面试题总结
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)