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];
/**
* ....
*/