我学的是python,但在笔试时总是碰到其他语言的数组定义声明及引用,这种题搞的头大,于是来个各个语言的总结。
1 java
1.1 java定义数组有两种方式:
- type arrayname[];
- type[] arrayname;
type为数组类型,如:int, float, char, boolean(布尔型)
arrayname为数组名,[]说明该变量是一个数组类型的变量。
栗子:
- int[] intArray0;
- int intArray1[]
这两种方法没有区别,效果完全一样,不用纠结有什么不同点。
与c, c++不同,java在定义数组时并不为数组元素分配内存,因此[]中无需指定数组元素个数,即数组长度。
上述定义的数组也不能访问,因为并没有分配内存空间。
1.2 分配内存空间,要用到运算符new
一维数组的创建,格式如下:
arrayName=new type[arraySize];
arraySize为数组长度,type为数组类型。
如: intArray0 = new int[3];
通常,在定义的同时分配空间:
type arrayName[]=new type[arraySize];
如: int intArray0[] = new int[3];
注:内存一旦分配不能改变,所有说数组长度固定
1.3 数组的初始化
- 静态初始化:静态初始化是指在定义的同时指定数组元素内容
- 动态初始化:动态初始化是指在定义时首先通过new 关键字开辟指定大小的存储空间,然后在为数组指定内容
一维数组的静态初始化:
arrayName=new type[]{a, b,c };
简化形式:
arrayName = {a, b,c };
如:intArray[] = {1,2,3,4};
动态初始化:
arrayName = new type[arraySize];
静态初始化不指定元素的个数,动态初始化必须指定元素的个数。静态初始化时数组能够知道元素的个数所以不需要指定,而动态初始化时数组元素个数未知因此必须指定。
静态初始化
int intArray2 [] = new int[]{20,21,22};
静态初始化简化方式
int intArray3 [] = {30,31,32};
动态初始化
int[] intArray4 = new int[3];
错误写法:静态初始化不能指定元素个数
int intErrorArray5[] = new int[3]{50,51,52};
错误写法:动态初始化必须指定元素个数
int intErrorArray6[] = new int[];
1.4数组引用
t通过下表引用数组:
arrayName[index];
如:
动态初始化:
float floatArray[] = new float[3]; //3指数组元素的个数
floatArray[0] = 1.0f;
floatArray[1] = 131.58f;
floatArray[2]=167F;
1.5 二维数组的定义
- 动态初始化
数据类型 数组名 [ ][ ] = new 数据类型[m][n]
数据类型 [ ][ ] 数组名 = new 数据类型[m][n]
数据类型 [ ] 数组名 [ ] = new 数据类型[m][n]
举例:int [ ][ ] arr=new int [5][3]; 也可以理解为“5行3例”
- 静态初始化
数据类型 [ ][ ] 数组名 = {{元素1,元素2....},{元素1,元素2....},{元素1,元素2....}.....};
举例:int[][] arr = {{2,5},{1},{3,2,4},{1,7,5,9}};