明確:?程序是用來處理數據的, 因此要掌握數據處理的數據結構
????????數組是編程中常用的數據結構之一,用于存儲一系列相同類型的元素。在Java中,數組是一種對象,可以存儲固定大小的相同類型元素的集合。
1.一維數組
? ? ? ? 數組是一個數據容器,可用來存儲一批同類型的數據
1.1 一維數組的初始化
1.2 一維數組的訪問
public static void inputScore() {// 1. 你需要一個數組來存儲8名學生的成績。// 動態初始化數組,只確定數組的類型和存儲數據的容量。不事先存入具體的數據。// 數據類型[] 數組名 = new 數據類型[長度];double[] scores = new double[8];// scores = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];// 0 1 2 3 4 5 6 7// 2. 錄入8名學生的成績,存入到數組中去Scanner sc = new Scanner(System.in);for (int i = 0; i < scores.length; i++) {// i = 0 1 2 3 4 5 6 7System.out.println("請輸入第" + (i + 1) + "個學生的成績:");scores[i] = sc.nextDouble();}// 3. 遍歷數組,統計總分,平均分。double allScore = 0.0;for (int i = 0; i < scores.length; i++) {// i = 0 1 2 3 4 5 6 7double score = scores[i];// 4. 累加當前遍歷到的這個分數allScore += score;}System.out.println("平均分:" + allScore / scores.length);
}
1.3 一維數組求最值的思想
初始化變量:首先,你需要一個變量來保存最大值(或最小值)。通常,你可以將數組的第一個元素賦值給這個變量。
遍歷遍數組:然后,遍歷數組中的每個元素,將它們與當前的最大值(或最小值)進行比較。
更新變量:如果發現一個元素比當前的最大值(或最小值)更大(或更小),則更新最大值(或最小值)變量。
返回結果:遍歷完成后,最大值(或最小值)變量中保存的就是數組中的最大值(或最小值)。
// 設計一個方法,求數組的最大值返回。
public static int getMax(int[] arr) {// 1、定義一個變量用于記錄當前最大值,建議用第一個數據做為參照物。int max = arr[0];// 2、從數組的第二個位置開始遍歷for (int i = 1; i < arr.length; i++) {// 3、依次和參照物比較,如果比參照物大,則更新參照物。int data = arr[i];if (data > max) {max = data;}}// 4、返回最大值。return max;
}
1.4 一維數組的元素交換
確定交換的元素:首先,你需要知道要交換的兩個元素的索引位置。例如,如果你想交換數組中索引為
i
和j
的兩個元素,你需要記錄下這兩個索引。使用臨時變量:由于數組中的元素是按位置存儲的,直接交換兩個元素可能會導致數據丟失。因此,通常需要一個臨時變量來暫存一個元素的值。
交換元素:將第一個元素的值存儲到臨時變量中,然后將第二個元素的值賦給第一個元素,最后將臨時變量中的值賦給第二個元素。
驗證結果:交換完成后,可以通過打印或檢查數組來驗證元素是否成功交換
public class ArrayElementSwap {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};System.out.println("原始數組: ");for (int number : numbers) {System.out.print(number + " ");}System.out.println();swap(numbers, 1, 3); // 交換索引1和索引3的元素System.out.println("交換后的數組: ");for (int number : numbers) {System.out.print(number + " ");}}public static void swap(int[] array, int index1, int index2) {int temp = array[index1]; // 保存索引1處的值array[index1] = array[index2]; // 索引2處的值賦給索引1array[index2] = temp; // 臨時變量的值賦給索引2}
}
2.二維數組
? ? ? ? 數組中的每個元素都是一個一維數組, 這個數組就是二維數組