數組是固定大小、同類型元素的線性容器,下標從 0 開始。Java 數組是對象,擁有 length 屬性獲取長度。
int[] arr; // 聲明引用
arr = new int[12]; // 分配空間,默認初始化為 0
int[] arr2 = new int[12]; // 合寫
// 多數組同時聲明
String[] a = new String[100], b = new String[27];
final int SIZE = 10;
int[] n = new int[SIZE];
for (int i = 0; i < n.length; i++) {
n[i] = 2 + 2 * i; // 2,4,6...20
}
// 輸出
for (int i = 0; i < n.length; i++) {
System.out.println(i + "\t" + n[i]);
}
整個數組傳遞:傳遞引用副本,方法內修改元素影響原數組(引用傳遞效果)。
單個元素傳遞:傳遞基本類型值的副本,方法內修改不影響原數組(值傳遞)。
public void modifyArray(int[] b) {
for (int j = 0; j < b.length; j++) b[j] *= 2; // 影響原數組
}
public void modifyElement(int e) {
e *= 2; // 不影響原數組
}
int[][] matrix = new int[3][4]; // 3行4列
int[][] jagged = new int[3][]; // 鋸齒數組
jagged[0] = new int[2];
jagged[1] = new int[5];
Arrays.sort(arr):雙軸快排(基本類型)/ 歸併排序(對象),O(n log n)。Arrays.sort(arr, Comparator)。| 算法 | 前提 | 時間複雜度 | 說明 |
|---|---|---|---|
| 線性查找 | 無序 | O(n) | 逐個比對,小數據量可用 |
| 二分查找 | 有序 | O(log n) | Arrays.binarySearch(),大數據量首選 |