首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 陣列完整指南:宣告、初始化、多維陣列與 Arrays 工具類

     編輯:Java 程式設計入門

Java 陣列完整指南:宣告、初始化、多維陣列與 Arrays 工具類

陣列是固定大小、同型別元素的容器。以 numbers[100] 取代 100 個獨立變數,管理更有效率。


宣告陣列變數

// 推薦風格
dataType[] arrayRefVar;
// C/C++ 風格(不推薦)
dataType arrayRefVar[];

範例

double[] myList; // 推薦
double myList[]; // 效果相同

建立與初始化陣列

動態初始化(指定長度,預設值 0/null/false)

arrayRefVar = new dataType[arraySize];
// 或合併宣告建立
dataType[] arrayRefVar = new dataType[arraySize];

靜態初始化(直接給值)

dataType[] arrayRefVar = {value0, value1, ..., valuek};

完整範例:建立、賦值、求和

public class TestArray {
    public static void main(String[] args) {
        int size = 10;
        double[] myList = new double[size];
        myList[0] = 5.6; myList[1] = 4.5; myList[2] = 3.3;
        myList[3] = 13.2; myList[4] = 4.0; myList[5] = 34.33;
        myList[6] = 34.0; myList[7] = 45.45; myList[8] = 99.993; myList[9] = 11123;

        double total = 0;
        for (int i = 0; i < size; i++) total += myList[i];
        System.out.println("總和:" + total); // 11367.373
    }
}

陣列記憶體結構圖


陣列遍歷:for vs foreach

傳統 for 迴圈

for (int i = 0; i < myList.length; i++) {
    System.out.println(myList[i]);
}

增強型 for (foreach) - JDK 1.5+

for (double element : myList) {
    System.out.println(element);
}

適用場景: 僅需順序讀取元素,不需索引。無法用於修改陣列元素(修改的是副本)。


陣列作為方法參數與返回值

參數傳遞

public static void printArray(int[] array) {
    for (int i = 0; i < array.length; i++)
        System.out.print(array[i] + " ");
}
// 呼叫
printArray(new int[]{3, 1, 2, 6, 4, 2});

返回陣列

public static int[] reverse(int[] list) {
    int[] result = new int[list.length];
    for (int i = 0, j = result.length - 1; i < list.length; i++, j--)
        result[j] = list[i];
    return result;
}

多維陣列

本質是「陣列的陣列」。二維陣列:每個元素為一維陣列。

靜態初始化

String[][] str = new String[3][4]; // 3 行 4 列
int[][] a = {{1,2,3}, {4,5}, {6,7,8,9}}; // 不規則陣列

動態初始化:兩種方式

// 1. 一次配置所有維度
int[][] a = new int[2][3]; // 2 行 3 列

// 2. 逐層配置(不規則陣列)
String[][] s = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = "Good"; s[0][1] = "Luck";
s[1][0] = "to"; s[1][1] = "you"; s[1][2] = "!";

存取元素

arrayName[index1][index2]
num[1][0]; // 第 2 行第 1 列

Arrays 工具類

java.util.Arrays 提供靜態方法操作陣列:

方法功能
sort(arr)升序排序(基本型別用 Dual-Pivot Quicksort,物件用 TimSort)
binarySearch(arr, key)二分搜尋(陣列必須已排序)
equals(arr1, arr2)比較兩陣列元素是否相等
fill(arr, val)填充指定值
toString(arr)陣列轉字串(方便除錯)
copyOf(arr, newLength)複製陣列
asList(arr)陣列轉 List(固定大小)

範例

int[] nums = {5, 2, 8, 1};
Arrays.sort(nums); // [1, 2, 5, 8]
int idx = Arrays.binarySearch(nums, 5); // 返回 2
System.out.println(Arrays.toString(nums)); // [1, 2, 5, 8]

常見陣列操作陷阱

  • 索引越界: 存取 arr[arr.length] 拋出 ArrayIndexOutOfBoundsException。
  • 參考傳遞: 方法修改陣列元素會影響原陣列。
  • foreach 不可修改元素: 基本型別修改的是副本;參考型別可修改物件內部狀態但無法替換陣列元素參考。
  • 多維陣列長度: arr.length 為行數,arr[0].length 為第一行列數。

熟練掌握陣列操作是 Java 程式設計基礎,搭配 Arrays、Collections、Stream API 可處理多數資料處理需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved