在我們需要處理很多個相同性質且相同型別的資料,可以用陣列中的元素取代多個同型別的變數,要用陣列時需要先宣告,並用new建立陣列物件,也可因此知道陣列的型別和有多少元素
int[] arr1; // 先宣告
arr = new int[5]; // new物件
int[] arr2 = new int[5]; // 一次宣告加new物件
我們要在陣列中放資料,就要用陣列的索引值([]裡面放的數,new int[5]代表放了空間大小是5,從0開始)
int[] arr1 = new int[5];
arr[0] = 2;
arr[1] = 4;
arr[2] = 6;
arr[3] = 8;
arr[4] = 10;
int[] arr2 = new int[] {2, 4, 6, 8, 10}; // 建立陣列加設定初值
int[] arr3 = new int[5];
Arrays.fill(arr, 0); // 如果初值都一樣可以用此方法,這裡是設定為0
int[] arr = new int[] {2, 4, 6, 8, 10}; // 建立陣列加設定初值
// 單純使用for
for(int i=0; i<5; i++){
System.out.println(arr[i]);
}
// 使用for each
for(int i: arr){
System.out.println(i);
}
使用形式:
for(陣列型別 變數名: 陣列名){}
注意: 只能從頭讀取每個元素,只能讀取不可改變元素,變數只在迴圈內有效
多維就像是空間座標一樣,一維就是x, 二維就是x、y, 三維就是x、y、z, ...
int[][] arr1;
arr1 = new int[3][4];
int[][] arr2 = new int[3][4];
int[][] arr1 = new int[3][4];
arr1[0][0] = 2;
...
arr1[2][3] = 7;
int[][] arr2 = {{2, 4, 6, 8}, {1, 2, 3, 4}, {1, 3, 5, 7}}; // 建立陣列加設定初值
int[][] arr2 = {{2, 4, 6, 8}, {1, 2, 3, 4}, {1, 3, 5, 7}}; // 建立陣列加設定初值
for (int i=0; i< arr2.length; i++){
for (int j=0; j<arr2[i].length; j++){
System.out.print(arr2[i][j] + " ");
}
System.out.println();
}
int[] arr3 = new int[5];
Arrays.fill(arr, 0); // 如果初值都一樣可以用此方法,這裡是設定為0
// 程式最前面要加上import java.util.Arrays;
int[] arr = new int[] {10, 6, 4, 8, 2}; // 建立陣列加設定初值
Arrays.sort(arr);
// 單純使用for
for(int i=0; i<5; i++){
System.out.print(arr[i]+ " ");
}
binarySearch(陣列, 要找的元素) => 回傳index
int[] arr2 = new int[] {2, 4, 6, 8, 10};
int num4 = Arrays.binarySearch(arr2, 4);
int num8 = Arrays.binarySearch(arr2, 8);
System.out.println("4 is at index " + num4);
System.out.println("8 is at index " + num8);
int[] arr1 = {2, 4, 6, 8, 10};
System.out.println(Arrays.toString(arr1)); // [2, 4, 6, 8, 10]
Arrays.copyOf(陣列, 選擇長度)
// copyOf => 從index0開始複製到選擇長度
int[] arr1 = {2, 4, 6, 8, 10};
int[] arr2 = Arrays.copyOf(arr1, 5);
System.out.println(Arrays.toString(arr2)); // [2, 4, 6, 8, 10]
int[] arr3 = Arrays.copyOf(arr1, 2);
System.out.println(Arrays.toString(arr3)); // [2, 4]
int[] arr4 = Arrays.copyOf(arr1, 6);
System.out.println(Arrays.toString(arr4)); // [2, 4, 6, 8, 10, null]
Arrays.copyOfRange(陣列, 開始index, 結束index+1)
int[] arr1 = {2, 4, 6, 8, 10};
int[] arr2 = Arrays.copyOfRange(arr1, 0, 2);
System.out.println(Arrays.toString(arr2)); // [2, 4]
int[] arr3 = Arrays.copyOfRange(arr1, 2, 5);
System.out.println(Arrays.toString(arr3)); // [6, 8, 10]
int[] arr4 = Arrays.copyOfRange(arr1, 4, 6);
System.out.println(Arrays.toString(arr4)); // [10, null]