IT开发者百科  > 所属分类  >  数组    Java教学专辑   
顶[0] 评论[0] 编辑

Java基础第十三讲:数组

 

java_lesson13

 本讲内容:数组

数组是Java中的对象,它用来存储多个相同类型的基本数据类型或者对象引用。

一、声明数组

数组是通过说明它将要保存的元素类型来声明的,元素类型可以是对象或者基本类型。类型后面的方括号可以在写在标识符的前面,也可以写在后面。当然我们推荐还是写在前面。

 

int[] number1;
int number2[];

 

int[] number1 ; 把方括号紧贴着类型写,会明确的告诉我们声明的是一个对象他的名字是 number1,他的类型是数组类型,而且是只能存储int类型的数组。 而后一种写法是C程序员更喜欢的写法。

可以声明多维数组,可以声明对象类型的数组:

 

String[][] s1; //二维数组
String[][][][] s2; //四维数组
String[] s3[]; //怪异写法的二维数组,这样写也是正确的,但是不建议这么干

 

Java中的二维数组就是一维数组中的每一个元素都还是个数组,那么合起来就是二维数组了,以此类推。

最后记住一句话在声明数组的时候不能在方括号中写数组的长度,因为声明数组的过程并没有创建数组本身,只是定义了一个变量,但是变量并没被赋值。

二、构建数组 | 创建数组 | 实例化数组

构建数组意味着在堆上创建数组对象(所有的对象都存储在堆上,堆是一种内存存储结构,既然要存储就设计空间分配问题,因此此时需要指定数组的大小)。而此时虽然有了数组对象,但数组对象里还没有值。

 

int[] scores; //声明数组
scores = new int[34]; //创建数组

int[] i = new int[22]; //声明并创建数组

 

构建数组意味着在堆上创建数组对象(所有的对象都存储在堆上,堆是一种内存存储结构,既然要存储就设计空间分配问题,因此此时需要指定数组的大小)。

 

int[][] xy= new int[2][3]; //声明并创建二维数组
int[][] mn= new int[2][];  //声明并创建二维数组,只创建第一级数组也是可以的。
mn[0]=int[4]; //分别定义第二级数组
mn[1]=int[5]; //他们的长度可以不同

 

三、初始化数组 | 给数组赋值

初始化数组就是把内容放在数组中。数组中的内容就是数组的元素。他们可以是基本数据类型也可以是引用数据类型。如同引用类型的变量中保存的是指向对象的引用而不是对象本身一样。数组中保存的也是对象的引用而不是对象本身。

 

Pig[] pigs = new Pig[3]; //声明并创建猪数组
pigs[0] = new Pig();      //给每一个元素赋值,创建了三个猪对象,此时数组里才真正有了对象
pigs[1] = new Pig();      //数组用下标来赋值和访问,下标写在[]中,数组下标最大是声明数量减1
pigs[2] = new Pig();	

 

下面我们再看一个例子:

 

int[] numbers={0,1,2,3,4,5,6,7,8,9};
Pig[] pigs = {new Pig(),new Pig(),new Pig};
int[][] xy={{2,3},{4,5},{6,7}};

 

这种写法就是把声明、创建和初始化同时完成的快捷写法。注意这种写法不能被分拆:

 

int[] numbers;
numbers={0,1,2,3,4,5,6,7,8,9}; //这样的写法在java中是不允许的,这……很不幸

 

然而,下面的写法则是合法的:

 

int[] numbers;
numbers=new int[]{0,1,2,3,4,5,6,7,8,9};  //创建匿名数组并赋值

int[][] xy= new int[][]{{2,3},{4,5},{5,6}}; //创建二维匿名数组并赋值

int[] x=new int[3]{1,2,3};  //这样的写法是错误的

 

我们看到这样的写法多了个创建匿名数组的过程,记住创建匿名数组的时候不要在中括号中填写数组的大小,否则会报错。

好了,本讲就到这里。

附件列表


您所在的用户组无法下载或查看附件

0

Java-Android手机千人开发交流QQ群:38088312,PHP开发千人高级交流QQ群:50194090,欢迎加入学习!本站为
非赢利站点,挖掘网络资源,分享个人兴趣,如有侵犯您的版权,请联系我们,我们会第一时间删除内容或添加转载出处,敬请谅解!

如果您认为本词条还有待完善,请 编辑

上一篇 Java基础第十二讲:面向对象基础(六)    下一篇 Java基础第十四讲:字符串

参考资料

[1].  Android学习指南   http://android.yaohuiji.com/archives/3379

同义词

暂无同义词