数组可以看作不同大小的车子,有固定的座位数。在C、C++中座位是在设计(声明)的时候就固定了的,而在java中可以在制作阶段(初始化)时,根据实际定下来。
一维数组的初始化有两种方式:
1、声明时初始化等同于C/C++
值得一提的是,
int c[4] = {1,2,3,3};//第一种,C&C++中is right!而在java中is wrong!!
int d[] = {2,0};//而第二种在哪里都是right!
2、使用new初始化
例如:
int []array; array = new int[10]; array[0] = 0; System.out.println("a:"+array[0] );对于对象类型的数组,可以
Integer a[] = {new Integer(60),new Integer(2) }; System.out.println("a:"+a[0] ); float[] b = new float[]{1,2,3,4,5}; System.out.println("b:"+b[3] );
class Her{ int a = 0; } . . .
Her []h = new Her[7]; Her []her; her = new Her[2];
二维数组的初始化类似于一维数组,有以下形式:
int arr[][];
arr = new int[1][2];
或者
int arr[][] = new int [1][2];
又或者
int arr[][];
arr[3][];
arr[0] = new int[3];
arr[1] = new int[2];
arr[2] = new int[1];
又又或者
int d[][];d[0] = new int[2];
总之,java数组在声明的时候,数组名字后面不能定义数组长度。而在C\C++ 中,二维数组第一维大小可以空着,第二维则必须写清楚,即int arr[][2]={1,2,3,4},且后面必须初始化!在我看来,归根结底,是C\C++、java要给数组开辟固定大小空间,也就是说是静态的,所以要在声明时就确定下来占用内存大小;而在java中,数组只是把声明和定义分开来而已,声明可以不确定大小,而在定义时必须确定大小。二维以上的规则等同于二维。