网站首页 > java教程 正文
问:数组的初始化方式有哪几种?
答:在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。见上面讲解。
猜你喜欢
- 2024-10-23 运维--shell 中数组的操作(shell中数组如何定义)
- 2024-10-23 C/C++编程笔记:C 语言字符数组的定义与初始化,讲解到位
- 2024-10-23 Java SE之——数组 基础篇(java入门数组基础educoder)
- 2024-10-23 初识Java—(十)数组(1)(初识java)
- 2024-10-23 巧用C语言中数组部分元素初始化(c语言数组全部初始化为0)
- 2024-10-23 C语言数组算法实现_初始化(c语音数组初始化)
- 2024-10-23 北大学霸!手抄万字Java数组笔记,2小时吃透,你确定不拿走?
- 2024-10-23 C语言中的数组:声明、初始化和操作
- 2024-10-23 「C语言」初始化数组,C语言中初始化特定列表和元素
- 2024-10-23 C语言一维数组,如何初始化?有哪些方式?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)