java学习(13)

来源:互联网 发布:安安学车软件 编辑:程序博客网 时间:2024/06/04 19:17

from: http://android.yaohuiji.com/archives/3379

 

ava基础第十三讲:数组

18OCT

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();      //数组用下标来赋值和访问,下标写在[]中,数组下标最大是声明数量减1pigs[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};  //这样的写法是错误的


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

好了,本讲就到这里。

原创粉丝点击