Java數組基礎:定義、初始化與遍歷,快速上手

數組是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);
}
  • 適用場景:只需要訪問元素值,不需要修改索引時使用。

三、常見注意事項

  1. 數組類型必須一致:數組中所有元素的數據類型必須相同,例如int[]數組不能存儲字符串。
  2. 索引從0開始:第一個元素的索引是0,不是1,這是初學者最容易犯錯的地方。
  3. 數組長度不可變:一旦初始化,數組的長度就固定了,無法中途添加或刪除元素。
  4. 避免空指針異常:未初始化的數組變量(如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數組的基本定義、初始化和遍歷方法。數組是編程中處理批量數據的核心工具,熟練掌握數組操作能幫助你更高效地解決問題。接下來可以嘗試自己寫一些簡單的數組練習,比如計算數組元素的和、查找最大值等,鞏固所學知識。

小夜