本讲内容:

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

一、声明数组

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

 

1 int[] number1;
2 int number2[];

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

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

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

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

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

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

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

1 int[] scores; //声明数组
2 scores = new int[34]; //创建数组
3
4 int[] i = new int[22]; //声明并创建数组

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

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

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

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

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

下面我们再看一个例子:

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

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

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

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

1 int[] numbers;
2 numbers=new int[]{0,1,2,3,4,5,6,7,8,9};  //创建匿名数组并赋值
3
4 int[][] xy= new int[][]{{2,3},{4,5},{5,6}}; //创建二维匿名数组并赋值
5
6 int[] x=new int[3]{1,2,3};  //这样的写法是错误的

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

好了,本讲就到这里。

分享至上:分享源头

随机文章

百度搜索引擎显示网站ICO图标事件始末
百度搜索引擎显示网站ICO图标事件始末

新浪微博纪念乔布斯,腾讯微博没有
新浪微博纪念乔布斯,腾讯微博没有

三星明年将其手机系统Bada开源
三星明年将其手机系统Bada开源

百度“道招”这个关键字现在终于第一页
百度“道招”这个关键字现在终于第一页

Java基础第十二讲:面向对象基础(六)
Java基础第十二讲:面向对象基础(六)

twitter终于推出win8版
twitter终于推出win8版

相关文章

黑莓官方催促twitter用户用回老版本客户端
黑莓官方催促twitter用户用回老版本客户端

U盘安装ubuntu linux, 重启后屏幕一直停留在Peter Anvin et al
U盘安装ubuntu linux, 重启后屏幕一直停留在Peter Anvin et al

jQuery网格插件ParamQuery
jQuery网格插件ParamQuery

Google Now能设置你的手机了
Google Now能设置你的手机了

中国工商银行开通微信银行
中国工商银行开通微信银行

百度搜索真坏啊
百度搜索真坏啊

内容分享:道招
本文链接:Java基础第十三讲:数组
道招声明:除特别标注或作者不详外,本站所有文章均为原创,转载请注明。欢迎共同关注互联网!