目錄
聲明和初始化數組:
訪問和修改數組元素:
數組長度:
遍歷數組:
多維數組的遍歷:
數組的常見操作和方法:
拓展小知識:
數組是Java中的一種數據結構,用于存儲相同類型的多個元素。它提供了一個連續的內存塊來存儲數據,并可以通過索引訪問和操作數組中的元素。
聲明和初始化數組:
- 數組聲明:在聲明數組時,需要指定數組的數據類型和名稱。例如,
int[] myArray;
?聲明了一個名為?myArray
?的整型數組。 - 數組初始化:通過使用關鍵字?
new
?創建數組對象,并指定數組的長度或直接提供元素的初始值來初始化數組。- 通過指定長度初始化數組:
myArray = new int[5];
?使用?new
?關鍵字創建一個包含5個整數元素的整型數組。 - 直接提供元素的初始值初始化數組:
int[] myArray = {1, 2, 3, 4, 5};
?定義并初始化了一個包含元素 1、2、3、4 和 5 的整型數組。
- 通過指定長度初始化數組:
int[] myArray; // 聲明一個整型數組變量
myArray = new int[5]; // 創建一個包含5個整數元素的數組int[] myArray = {1, 2, 3, 4, 5}; // 聲明并初始化一個整型數組// 多維數組
int[][] myArray = new int[3][4]; // 聲明一個3行4列的二維數組
訪問和修改數組元素:
- 數組的索引從0開始,即第一個元素的索引是0。要訪問和修改數組中的元素,可以使用方括號?
[]
?并提供相應的索引。- 獲取數組中的元素值:
int value = myArray[0];
?獲取索引為0的元素值并賦給變量?value
。 - 修改數組中的元素值:
myArray[1] = 10;
?將索引為1的元素值設置為10。
- 獲取數組中的元素值:
int value = myArray[0]; // 獲取數組中索引為0的元素值myArray[1] = 10; // 修改數組中索引為1的元素值
數組長度:
- 通過使用數組的 length 屬性,可以獲取數組的長度。例如,int length = myArray.length; 獲取數組 myArray 的長度,并將其賦給變量 length。
int length = myArray.length; // 獲取數組的長度
遍歷數組:
- 可以使用循環結構(例如?
for
?循環)來遍歷數組中的元素并進行處理。 - 使用下標循環遍歷:通過控制索引的范圍,從0開始逐個訪問數組中的元素并進行操作。
for (int i = 0; i < myArray.length; i++) {System.out.println(myArray[i]);
}
- 使用 for-each 循環遍歷:使用 for-each 循環語法可以簡化數組的遍歷操作。它會依次遍歷數組中的每個元素,而不需要顯式地使用索引。
for (int num : myArray) {System.out.println(num);
}
多維數組的遍歷:
多維數組是由數組組成的數組。可以使用嵌套的循環結構來遍歷多維數組中的元素。
int[][] myArray = new int[3][4]; // 一個3行4列的二維數組for (int i = 0; i < myArray.length; i++) {for (int j = 0; j < myArray[i].length; j++) {System.out.println(myArray[i][j]);}
}
數組的常見操作和方法:
java.util.Arrays 類能方便地操作數組,它提供的所有方法都是靜態的。
以下是對 java.util.Arrays
類提供的常用方法的簡要介紹:
- fill 方法:用指定的值填充整個數組。
- sort 方法:按升序對數組進行排序。
- equals 方法:比較兩個數組中的元素值是否相等。
- binarySearch 方法:在已排序的數組中使用二分查找法查找指定元素。
注意:在使用索引訪問和修改數組元素時,確保索引值在數組的有效范圍內,以避免出現 ArrayIndexOutOfBoundsException
異常。
import java.util.Arrays;public class ArraysExample {public static void main(String[] args) {// 聲明并初始化一個整型數組int[] array = {5, 2, 9, 1, 7};// 使用fill方法將整個數組填充為指定的值Arrays.fill(array, 0);System.out.println("使用fill方法后的數組: " + Arrays.toString(array));// 運行結果:使用fill方法后的數組: [0, 0, 0, 0, 0]// 使用sort方法對數組進行升序排序Arrays.sort(array);System.out.println("使用sort方法后的數組: " + Arrays.toString(array));// 運行結果:使用sort方法后的數組: [0, 0, 0, 0, 0]// 聲明并初始化一個新的整型數組int[] newArray = {1, 2, 3, 4, 5};// 使用equals方法比較兩個數組的元素值是否相等boolean isEqual = Arrays.equals(array, newArray);System.out.println("兩個數組是否相等: " + isEqual);// 運行結果:兩個數組是否相等: false// 使用binarySearch方法在已排序的數組中查找指定元素int index = Arrays.binarySearch(newArray, 4);System.out.println("查找元素的索引位置: " + index);// 運行結果:查找元素的索引位置: 3}
}
拓展小知識:
ArrayIndexOutOfBoundsException 是 Java 中的一個運行時異常,它表示數組訪問超出了有效索引范圍。這通常發生在以下情況下:
- 索引小于零:嘗試使用負數作為數組元素的索引。
int[] myArray = {1, 2, 3}; int value = myArray[-1]; // 導致 ArrayIndexOutOfBoundsException 異常
- 索引大于等于數組長度:嘗試訪問或修改數組中不存在的索引位置。
int[] myArray = {1, 2, 3}; int value = myArray[3]; // 導致 ArrayIndexOutOfBoundsException 異常
- 在嵌套數組(多維數組)中的某個維度上的索引超出范圍。
int[][] myArray = new int[3][4]; // 3行4列的二維數組 int value = myArray[3][0]; // 導致 ArrayIndexOutOfBoundsException 異常
為避免 ArrayIndexOutOfBoundsException
異常,需要確保在訪問和修改數組元素時,所使用的索引值位于合法的范圍內:
- 數組的索引范圍為從 0 到長度減一(length - 1)的整數范圍。
- 多維數組的每個維度的索引范圍也是相同的。
在編寫代碼時,需要仔細檢查數組索引的使用,確保它們在合法范圍內,可以通過條件判斷、循環和邊界檢查等方法來避免 ArrayIndexOutOfBoundsException
異常的發生。