數組是Java中一種非常基礎且常用的數據結構,它可以存儲多個相同類型的數據。想象一下,數組就像一個“容器”,裏面裝着多個元素,每個元素都有一個唯一的“位置編號”,我們可以通過這個編號快速找到對應的元素。
一、數組的定義¶
在Java中,定義數組需要先聲明數組變量,併爲其分配存儲空間。數組的聲明和初始化有幾種常見方式:
1. 聲明數組變量¶
數組變量的聲明格式爲:
數據類型[] 數組名; (推薦這種寫法,也可以寫成數據類型 數組名[];,但前者更清晰)
例如:
int[] scores; // 聲明一個int類型的數組變量scores
String[] names; // 聲明一個String類型的數組變量names
2. 分配空間並初始化¶
聲明數組後,需要爲其分配存儲空間(即確定數組的長度),並可以選擇初始化元素。
(1)動態初始化(先指定長度,再賦值)¶
先指定數組長度,再給每個元素賦值:
// 聲明並動態初始化一個長度爲5的int數組
int[] numbers = new int[5];
// 給數組元素賦值(索引從0開始)
numbers[0] = 10; // 第一個元素
numbers[1] = 20; // 第二個元素
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
這裏要注意:數組長度一旦確定就不能改變,numbers.length會返回數組的長度(即5)。
(2)靜態初始化(直接賦值元素,無需指定長度)¶
直接給出數組的元素值,編譯器會自動推斷長度:
// 聲明並靜態初始化一個int數組
int[] ages = {18, 20, 22, 25};
// 等價寫法(顯式初始化)
int[] heights = new int[]{170, 175, 180};
注意:靜態初始化時不能同時指定長度和元素值,以下寫法是錯誤的:
int[] arr = new int[3]{1,2,3}; (會報錯,必須省略長度或直接賦值)
二、數組的遍歷¶
遍歷數組是指“逐個訪問數組中的每個元素”,最常用的方式有兩種:
1. for循環遍歷(索引遍歷)¶
通過數組的索引(從0開始)和for循環逐個訪問元素:
int[] arr = {1, 2, 3, 4, 5};
// 遍歷數組
for (int i = 0; i < arr.length; i++) {
System.out.println("第" + (i+1) + "個元素:" + arr[i]);
}
arr.length:數組的長度屬性(注意是屬性,無括號),用於控制循環次數。- 索引越界問題:數組索引範圍是
0 ~ length-1,若訪問arr[length]會拋出ArrayIndexOutOfBoundsException(數組越界異常)。
2. 增強for循環(for-each循環,無需索引)¶
更簡潔的遍歷方式,直接取出數組中的每個元素值:
int[] arr = {1, 2, 3, 4, 5};
for (int num : arr) { // num是臨時變量,依次代表數組中的每個元素
System.out.println(num);
}
- 適用場景:只需要訪問元素值,不需要修改索引時使用。
三、常見注意事項¶
- 數組類型必須一致:數組中所有元素的數據類型必須相同,例如
int[]數組不能存儲字符串。 - 索引從0開始:第一個元素的索引是0,不是1,這是初學者最容易犯錯的地方。
- 數組長度不可變:一旦初始化,數組的長度就固定了,無法中途添加或刪除元素。
- 避免空指針異常:未初始化的數組變量(如
int[] arr;)直接使用會報錯,必須先初始化(分配空間)。
四、完整示例代碼¶
public class ArrayDemo {
public static void main(String[] args) {
// 1. 定義並初始化數組
int[] scores = new int[3]; // 動態初始化長度爲3的數組
scores[0] = 90; // 賦值第一個元素
scores[1] = 85;
scores[2] = 95;
// 2. 靜態初始化數組
String[] names = {"張三", "李四", "王五"};
// 3. 遍歷scores數組(for循環)
System.out.println("scores數組遍歷結果:");
for (int i = 0; i < scores.length; i++) {
System.out.println("scores[" + i + "] = " + scores[i]);
}
// 4. 遍歷names數組(增強for循環)
System.out.println("\nnames數組遍歷結果:");
for (String name : names) {
System.out.println(name);
}
}
}
通過以上內容,你應該已經掌握了Java數組的基本定義、初始化和遍歷方法。數組是編程中處理批量數據的核心工具,熟練掌握數組操作能幫助你更高效地解決問題。接下來可以嘗試自己寫一些簡單的數組練習,比如計算數組元素的和、查找最大值等,鞏固所學知識。