Java中陣列只能存放相同類型的數據,且陣列的長度必須在創建該陣列時就決定,並且在創建之後不能改變。
宣告陣列
基本方式:
// 宣告一個整數陣列,陣列名稱為numbers,但尚未指定大小
int[] numbers;
// 決定陣列長度(能放幾個元素)
numbers = new int[5];
或是:
建立一個可以容納五個整數的陣列。陣列的每個位置都會自動填入該資料類型的預設值,就 int 型別而言,預設值是 0。
int[] numbers = new int[5]; // 創建一個長度為5的整數陣列
// 在宣告陣列後,可以透過索引存取與修改陣列中的元素,索引從0開始:
numbers[0] = 10; // 設置第一個元素為10
如果在宣告陣列時,已經知道了陣列的內容,也可以直接初始化陣列,如以下範例:
// 宣告並同時初始化陣列的值
int[] numbers = {1, 2, 3, 4, 5};
使用for-each迴圈遍歷陣列for-each
迴圈不需要使用索引來存取每個元素,它會自動迭代每一個元素,讓程式碼更具可讀性。
基本語法如下:
for (元素類型 變數名 : 陣列) {
// 在這裡對變數名進行操作
}
範例:
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
// number 代表陣列 numbers 中的每一個元素。
// 每次迭代,number 會自動指向陣列中的下一個元素。
Java 除了一維陣列外,還支援多維陣列,最常見的是二維陣列。二維陣列可以視為一個陣列的陣列,常用來表示矩陣(matrix)或表格資料。
二維陣列的宣告與初始化範例如下:
int[][] matrix = new int[3][3];
也可以在初始化時直接賦值:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
遍歷二維陣列時,通常會使用巢狀的 for 迴圈來達成
例如:
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.println(matrix[i][j]);
}
}
Java 陣列的缺點是在初始化後就無法更改陣列的大小,如果想要設計一個能夠動態擴展的資料結構,可以考慮使用像 ArrayList 這種集合類別。
關於ArrayList,可參考此篇文章:Java - 串列List