在 Java 中,陣列是一種把多個同型別的值存放在單一結構裡的方式。 和其他資料結構不同,陣列一旦建立,大小就固定不變。 你可以用索引把元素指定到陣列中,或從陣列取出元素。 Java 陣列使用從 0 開始的索引:第一個元素的索引是 0,第二個元素的索引是 1,依此類推。
以下是初始化陣列的標準語法:
type[] variableName = new type[size];
type 是陣列中元素的型別,可以是基本型別(例如 int)或類別(例如 String)。
size 是這個陣列能容納的元素數量(之後無法更改)。
陣列建立之後,元素會初始化為預設值(通常是 0、false 或 null)。
// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];
陣列也可以用簡寫語法來定義,讓你在建立陣列的同時設定它的值:
// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };
由於編譯器現在能判斷陣列會有多少個元素,長度可以省略。
陣列元素可以用方括號索引標記來指定和存取:
// Assign second element by index
twoInts[1] = 8;
// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];
存取超出陣列有效索引範圍的索引會導致 IndexOutOfBoundsException。
陣列可以透過呼叫陣列實例的方法或屬性來操作,也可以使用 Arrays 類別中定義的靜態方法(通常只用於泛型程式碼)。
length 屬性保存陣列的長度。
可以像這樣存取:
int arrayLength = someArray.length;
Java 也提供一個實用的工具類別 java.util.Arrays,裡面有許多處理陣列的好用方法(例如 Arrays.equals)。
Java 也支援多維陣列,例如 int[][] arr = new int[3][4];,這非常實用。
陣列同時也是一種_集合_,這表示除了用索引存取值之外,你還可以用 for-each 迴圈疊代它的_所有_值:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for(char vowel: vowels) {
// Output the vowel
System.out.print(vowel);
}
// => aeiou
如果你想更精確地控制要疊代哪些值,可以使用 for 迴圈:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for (int i = 0; i < 3; i++) {
// Output the vowel
System.out.print(vowels[i]);
}
// => aei