一、数组的声明、创建
1、一维数组
先是声明
dataType[] arrayRefVar; // 首选的方法
数据类型[] 数组名;
dataType arrayRefVar[]; // 效果相同,但不是首选方法
数据类型 数组名[];
创建
(1)
arrayRefVar = new dataType[arraySize];
数组名 = new 数据类型[数组大小];
(2)
dataType[] arrayRefVar = new dataType[arraySize];
数据类型[] 数组名 = new 数据类型[数组大小];
(3)
dataType[] arrayRefVar = {value0,value1, ..., valuek};
数据类型[] 数组名 = {值1,值2······}
另外,数组大小可以用:数组名.length 表示。
2、二维数组
声明
和一维数组差不多,多个[]。
创建
type[][] typeName = new type[typeLength1][typeLength2];
数据类型[][] 数组名 = new 数据类型[长度1][长度2];
(1)直接为每一维分配空间
二维数组可以看成是一个行列式,比如 int a[][] = new int[2][3]; 二维数组 a 是一个两行三列的数组。
(2)从最高维开始,分别为每一维分配空间
String s[][] = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");
s[0]=new String[2] 和 s[1]=new String[3] 是为最高维分配引用空间,也就是为最高维限制其能保存数据的最长的长度,然后再为其每个数组元素单独分配空间 s0=new String("Good") 等操作。这时二维数组就不能看成是行列式了。
二、数组遍历
(1)for循环
一维数组:
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
}
二维数组:
public class Test{
public static void main(string[] args) {
int[][] myList = {(1,2,3),(4,5),(6)};
for(int i = 0; i < myList.length ;i++) {
for(int j = 0; j < myList.length ;j++) {
system.out.println(myList[i][j] + " ");
}
}
}
}
(2)for-each循环
一维数组:
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素
for (double element: myList) {
System.out.println(element);
}
}
}
二维数组:
public class Test{
public static void main(String[] args) {
int[][] arr = {(1,2,3),(4,5),(6)};
for(int[] x; arr) {
for(int y; x) {
system.out.println(y + " ");
}
}
}
}
- for-each循环只能用来遍历,无法在遍历的过程中对数组或者集合进行修改。
- foreach不是java中的关键字。
取材于菜鸟教程和百度百科。