java學習之陣列
1 陣列的定義
在Java中,可以使用以下格式來定義一個數組。如下
資料型別[] 陣列名 = new 資料型別[元素個數或陣列長度];
int[] x = new int[100];
上述語句就相當於在記憶體中定義了100個int型別的變數,第一個變數的名稱為x[0],第二個變數的名稱為x[1],以此類推,第100個變數的名稱為x[99],這些變數的初始值都是0。為了更好地理解陣列的這種定義方式,可以將上面的一句程式碼分成兩句來寫,具體如下:
int[] x; // 宣告一個int[]型別的變數
x = new int[100]; // 建立一個長度為100的陣列
在Java中,為了方便我們獲得陣列的長度,提供了一個length屬性,在程式中可以通過“陣列名.length”的方式來獲得陣列的長度,即元素的個數。
接下來,通過一個案例來演示如何定義陣列以及訪問陣列中的元素,如下所示。ArrayDemo01.java
public class ArrayDemo01 { public static void main(String[] args) { int[] arr; // 宣告變數 arr = newint[3]; // 建立陣列物件 System.out.println("arr[0]=" + arr[0]); // 訪問陣列中的第一個元素 System.out.println("arr[1]=" + arr[1]); // 訪問陣列中的第二個元素 System.out.println("arr[2]=" + arr[2]); // 訪問陣列中的第三個元素 System.out.println("陣列的長度是:" + arr.length); // 列印陣列長度 } }
執行結果如下圖所示:
在上述程式碼中聲明瞭一個int[]型別變數arr,並將陣列在記憶體中的地址賦值給它。在5~7行程式碼中通過角標來訪問陣列中的元素,在第8行程式碼中通過length屬性訪問陣列中元素的個數。從列印結果可以看出,陣列中的三個元素初始值都為0,這是因為當陣列被成功建立後,陣列中元素會被自動賦予一個預設值,根據元素型別的不同,預設初始化的值也是不一樣的。具體如下表所示。
資料型別 |
預設初始化值 |
byte、short、int、long |
0 |
float、double |
0.0 |
char |
一個空字元(空格),即’\u0000’ |
boolean |
false |
引用資料型別 |
null,表示變數不引用任何物件 |
如果在使用陣列時,不想使用這些預設初始值,也可以顯式地為這些元素賦值。接下來通過一個程式來學習如何為陣列的元素賦值,如下所示。ArrayDemo02.java
public class ArrayDemo02 { public static void main(String[] args) { int[] arr = new int[4]; // 定義可以儲存4個整數的陣列 arr[0] = 1; // 為第1個元素賦值1 arr[1] = 2; // 為第2個元素賦值2 // 下面的程式碼是列印陣列中每個元素的值 System.out.println("arr[0]=" + arr[0]); System.out.println("arr[1]=" + arr[1]); System.out.println("arr[2]=" + arr[2]); System.out.println("arr[3]=" + arr[3]); } }
執行結果如下:
在上述程式碼中,第3行程式碼定義了一個數組,此時陣列中每個元素都為預設初始值0。第2、3行程式碼通過賦值語句將陣列中的元素arr[0]和arr[1]分別賦值為1和2,而元素arr[2]和arr[3]沒有賦值,其值仍為0,因此列印結果中四個元素的值依次為1、2、0、0。
陣列的靜態初始化有兩種方式,具體格式如下:
1、型別[] 陣列名 = new 型別[]{元素,元素,……};
2、型別[] 陣列名 = {元素,元素,元素,……};
2陣列遍歷
在運算元組時,經常需要依次訪問陣列中的每個元素,這種操作稱作陣列的遍歷。接下來通過一個案例來學習如何使用for迴圈來遍歷陣列,如下所示。ArrayDemo04.java
public class ArrayDemo04 { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; // 定義陣列 // 使用for迴圈遍歷陣列的元素 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); // 通過索引訪問元素 } } }
執行結果如下:
上述程式碼中,定義一個長度為5的陣列arr,陣列的角標為0~4。由於for迴圈中定義的變數i的值在迴圈過程中為0~4,因此可以作為索引,依次去訪問陣列中的元素,並將元素的值打印出來。