陣列是固定大小、同型別元素的容器。以 numbers[100] 取代 100 個獨立變數,管理更有效率。
// 推薦風格
dataType[] arrayRefVar;
// C/C++ 風格(不推薦)
dataType arrayRefVar[];
double[] myList; // 推薦
double myList[]; // 效果相同
arrayRefVar = new dataType[arraySize];
// 或合併宣告建立
dataType[] arrayRefVar = new dataType[arraySize];
dataType[] arrayRefVar = {value0, value1, ..., valuek};
public class TestArray {
public static void main(String[] args) {
int size = 10;
double[] myList = new double[size];
myList[0] = 5.6; myList[1] = 4.5; myList[2] = 3.3;
myList[3] = 13.2; myList[4] = 4.0; myList[5] = 34.33;
myList[6] = 34.0; myList[7] = 45.45; myList[8] = 99.993; myList[9] = 11123;
double total = 0;
for (int i = 0; i < size; i++) total += myList[i];
System.out.println("總和:" + total); // 11367.373
}
}

for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i]);
}
for (double element : myList) {
System.out.println(element);
}
適用場景: 僅需順序讀取元素,不需索引。無法用於修改陣列元素(修改的是副本)。
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
}
// 呼叫
printArray(new int[]{3, 1, 2, 6, 4, 2});
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i = 0, j = result.length - 1; i < list.length; i++, j--)
result[j] = list[i];
return result;
}
本質是「陣列的陣列」。二維陣列:每個元素為一維陣列。
String[][] str = new String[3][4]; // 3 行 4 列
int[][] a = {{1,2,3}, {4,5}, {6,7,8,9}}; // 不規則陣列
// 1. 一次配置所有維度
int[][] a = new int[2][3]; // 2 行 3 列
// 2. 逐層配置(不規則陣列)
String[][] s = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = "Good"; s[0][1] = "Luck";
s[1][0] = "to"; s[1][1] = "you"; s[1][2] = "!";
arrayName[index1][index2]
num[1][0]; // 第 2 行第 1 列
java.util.Arrays 提供靜態方法操作陣列:
| 方法 | 功能 |
|---|---|
sort(arr) | 升序排序(基本型別用 Dual-Pivot Quicksort,物件用 TimSort) |
binarySearch(arr, key) | 二分搜尋(陣列必須已排序) |
equals(arr1, arr2) | 比較兩陣列元素是否相等 |
fill(arr, val) | 填充指定值 |
toString(arr) | 陣列轉字串(方便除錯) |
copyOf(arr, newLength) | 複製陣列 |
asList(arr) | 陣列轉 List(固定大小) |
int[] nums = {5, 2, 8, 1};
Arrays.sort(nums); // [1, 2, 5, 8]
int idx = Arrays.binarySearch(nums, 5); // 返回 2
System.out.println(Arrays.toString(nums)); // [1, 2, 5, 8]
arr[arr.length] 拋出 ArrayIndexOutOfBoundsException。arr.length 為行數,arr[0].length 為第一行列數。熟練掌握陣列操作是 Java 程式設計基礎,搭配 Arrays、Collections、Stream API 可處理多數資料處理需求。