// 兩種等價寫法
int[] arr; // 推薦:類型後跟 []
int arr[]; // C 風格,不推薦
注意:聲明時不能指定長度(如 int[5] arr 非法)。
arr = new int[5]; // 分配堆內存,5個int元素,默認初始化為0
分步:聲明 → 分配空間 → 賦值。
int[] a = new int[3];
a[0] = 0; a[1] = 1; a[2] = 2;
// 引用類型數組
Date[] days = new Date[3];
days[0] = new Date(2008, 4, 5); // 注意:Date構造參數已過時,僅作演示
days[1] = new Date(2008, 2, 28);
days[2] = new Date(2008, 4, 4);
聲明同時指定元素值,長度由元素個數推斷。
int[] a = {0, 1, 2};
Time[] times = {
new Time(19, 42, 42),
new Time(1, 23, 54),
new Time(5, 3, 2)
};
數組是引用類型,創建時元素自動按成員變量規則初始化:
0、0.0、false、'\u0000'nullint[] a = new int[5];
System.out.println(a[3]); // 輸出 0
public class ArrayDemo {
public static void main(String[] args) {
// 動態
int[] dyn = new int[3];
dyn[0] = 10; dyn[1] = 20; dyn[2] = 30;
// 靜態
String[] sta = {"Java", "Python", "Go"};
// 默認
double[] def = new double[2]; // [0.0, 0.0]
// 遍歷輸出
for (int v : dyn) System.out.print(v + " ");
System.out.println();
for (String s : sta) System.out.print(s + " ");
}
}
// 二維數組:長度固定
int[][] matrix = new int[3][4];
// 不規則數組:每行長度可不同
int[][] jagged = new int[3][];
jagged[0] = new int[2];
jagged[1] = new int[5];
jagged[2] = new int[1];
arr[length] 拋 ArrayIndexOutOfBoundsException。Arrays.copyOf 或集合類。