1. 一维数组
首先要声明, JAVA对于数组类型的声明方式如下。
int a[]; int[] a;
数据类型 数组变量名[]
数组类型[] 数组变量名
第二种方式在类C语言里面非常常见,但是第一种简洁又好看。
1.1 数组初始化
正如 VB6里的Redim 和Dim 声明方式,我们必须给予数组一个初始化定义,否则数组将毫无意义。
于是,我们为了给它赋予一些东西,我需要给它定长。
这里要认识到一个关键词 "new".
这个关键词非常重要,在OOP的世界里,到处都是可以new的。
我们先说一下第一种初始化方式,静态初始化。
例如:
int array[]; array = {1,2,3,4,5}; //使用大括号对它直接填充
//int array[] = {1,2,3,4,5};
还有,类似这种。
int array[3]; array[0] = 1; array[1] = 2; array[2] = 3; //这里要注意一下数组的上界。
这里注意下数组的上界,这里小括号里填进去的数是数组的长度,也就是说这里面可以容纳多少个元素。如果你对array[3]赋值,则是越界行为,编译器会找不到元素3的位置。
「再再再注意一下, JDK规范设定 数组的只能从0开始,所以不要像VB6一样搞一些-255 to 255的骚操作了。」
静态的大致就是这些,接下来说一下第二种,动态初始化。
例如:
int a[]; //用new定义长度 a = new int[3]; //直接用new声明 int c = new int[4]; /** *遍历赋值 *for(int i = 0; i<c.length; i++){ *c[i] = 1; *} */
是不是很简洁。接下来介绍一下多维数组的使用。
2.多维数组
有一维就有二三四五六七维,多维数组可以解决很多一维数组不能满足的问题,在Java中,多维数组在使用中是这样设定的。
「高维在前,低维在后」,这是和VB6差不多。
多维数组也有静态和动态初始化方式,
静态初始化的方式:
int a[][] = ({1,2,3},{11,12,13},{22,22,23}); //大括号赋值初始化 int a[2][2]; //定长初始化 /** 赋值: *a[0][0] = 1; *a[0][1] = 1; *a[1][0] = 1; *a[1][1] = 1; */
动态初始化的方式:
new 数据类型 [高维长度] [低维长度]
1 //按照高维在先低维在后的顺序 二维 一维 这样写括号就可以了 2 int a[][]; 3 a = new int[3][4];
3.奇葩数组
书上记载里一种奇葩数组,声明了高维长却没有声明低维长,这种数组你碰之即越界,然后我Get到了这项新技巧,把它记下来。
直接上代码。
int a[] [] = new int [2] []; //缺少了低维长度 a[0] = new int [2]; //补全初始化 这一步相当于把[0,0][0,1]给声明了。 a[1] = new int [2]; /** * .... */