数组是我们接触的第一个容器,数组是长度固定的容器。数组是具有相同数据类型的,存储空间连续的变量的集合。它一但定义好大小将不能改变。Java中的数据类型分为两种:基本类型和引用类型,所以数组也有两种类型的:基本类型的数组和引用类型的数组(数组的数组也是引用类型的数组)。
目前可以用private, public 或着默认的修饰,private是封装的访问权限。将方括号置于变量名之后的声明数组的格式,是用于 C、C++和Java编程语言的标准格式。但这种格式会使数组的声明复杂难懂,因而,Java编程语言允许一种替代的格式,该格式中的方括号位于变量名的左边,意思是:声明一类型的数组,这个数组有一个引用名叫什么?JAVA推荐使用此格式。
Java编程语言允许使用下列形式快速创建数组:
String[] names = {
“Georgianna”,
“Jen”,
“Simon”,
};
其结果与下列代码等同:
String[] names;
names = new String [3];
names [0] = “Georgianna”;
names [1] = “Jen”;
names [2] = “Simon”;
这种”速记”法可用在任何元素类型。例如:
MyDate[] Dates = {
new MyDate (22,7,1964),
new MyDate (1,1,2000),
new MyDate (22,12,1964)
};
一个二维数组(JAVA中没有二维数组的概念,二维数组其实就是数组的数组)如下例所示:
int[][] twoDim = new int[4][];
twoDim[0] = new int[5];
twoDim[1] = new int[5];
首次调用 new 而创建的对象是一个数组,它包含 4个元素,每个元素的类型也是 int 数组型,必须将数组的每个元素分别初始化。
注意:尽管声明的格式允许方括号在变量名左边或者右边,但此种灵活性不适用于数组句法的其它方面。
例如: new int [ ][4]是非法的。
因为这种对每个元素的分别初始化,所以有可能创建非矩形数组的数组。也就是说,twoDim 的元素可按如下方式初始化:
twoDim[0] = new int [2]
twoDim[1] = new int [4];
twoDim[2] = new int [6];
twoDim[3] = new int [8];
由于此种初始化的方法烦琐乏味,而且矩形数组的数组是最通用的形式,因而产生了一种”速记”方法来创建二维数组。例如:
Int[][] twoDim = new int [4][5];
数组一旦创建后,其大小不可调整。然而,你可使用相同的引用变量来引用一个全新的数组:
int[] myArray = new int [6];
myArray = new int[10];
在这种情况下,第一个数组被丢弃,除非对它的其它引用保留在其它地方。
Java编程语言在System类中提供了一种特殊方法拷贝数组,该方法被称作arraycopy()。例如,araycopy可作如下使用:
int[] myArray = { 1, 2, 3, 4, 5, 6 }; // 原始数组
int[] hold = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; // 新的更大的数组
System.arraycopy(myArray, 0, hold, 0, myArray.length);
// 从没有Array拷贝所有元素到hold,从下标0开始
这时,数组 hold有如下内容:1,2,3,4,5,6,4,3,2,1。注意:如果数组保存的是基本类型的话直接把值拷贝过来[深拷贝]。如果数组存放的是引用类型(类类型,数组类型(多维数组的拷贝)等),那么拷贝的是引用类型的地址[浅拷贝]。
Java数组
最新推荐文章于 2024-11-01 14:48:20 发布