一、數組的聲明、創建
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中的關鍵字。
取材於菜鳥教程和百度百科。