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

Java 入門教程:第五章 陣列完整指南(一維、多維、初始化與排序)

     編輯:Java 程式設計入門

陣列基本概念

陣列為有序資料集合,每個元素具相同資料類型,透過統一陣列名稱與下標唯一確定元素。分為一維與多維陣列。

§ 5.1 一維陣列

一、一維陣列定義

語法:type arrayName[]; 或 type[] arrayName;

  • type:任意 Java 資料類型(基本型別或複合型別)
  • arrayName:合法識別符
  • []:指明為陣列型別變數

與 C/C++ 不同,定義時不分配記憶體,[] 中不指定長度,亦無法存取元素。必須使用 new 運算子分配空間:

arrayName = new type[arraySize];

常合併寫法:type arrayName = new type[arraySize];
例:int intArray = new int[3]; 配置 3 個 int 記憶體空間。

二、一維陣列元素引用

語法:arrayName[index]

  • index:整數常數或表達式,如 a[3], b[i], c[6*i]
  • 下標從 0 開始,至 length-1 結束
  • Java 執行邊界檢查保證安全性
  • 每個陣列擁有 length 屬性指明長度,如 intArray.length

範例 5.1:陣列賦值與逆序輸出

public class ArrayTest {
    public static void main(String args[]) {
        int a[] = new int[5];
        for(int i=0; i<5; i++) a[i] = i;
        for(int i=a.length-1; i>=0; i--)
            System.out.println("a[" + i + "] = " + a[i]);
    }
}

輸出:a[4]=4 至 a[0]=0

三、一維陣列初始化

定義同時初始化:int a[] = {1,2,3,4,5};
系統自動分配空間,元素以逗號分隔。與 C 不同,Java 不要求陣列為 static。

四、一維陣列程式範例

範例 5.2:費氏數列

public class Fibonacci {
    public static void main(String args[]) {
        int f[] = new int[10];
        f[0] = f[1] = 1;
        for(int i=2; i<10; i++) f[i] = f[i-1] + f[i-2];
        for(int i=1; i<=10; i++) System.out.println("F[" + i + "] = " + f[i-1]);
    }
}

輸出:1, 1, 2, 3, 5, 8, 13, 21, 34, 55

範例 5.3:泡泡排序法(由小到大)

public class BubbleSort {
    public static void main(String args[]) {
        int intArray[] = {30, 1, -9, 70, 25};
        int l = intArray.length;
        for(int i=0; i intArray[j]) {
                    int t = intArray[i];
                    intArray[i] = intArray[j];
                    intArray[j] = t;
                }
        for(int i=0; i

輸出:-9, 1, 25, 30, 70

§ 5.2 多維陣列

Java 多維陣列視為「陣列的陣列」。二維陣列為特殊一維陣列,每個元素又是一維陣列。高維情況類似。

一、二維陣列定義

語法:type arrayName[][]; 例:int intArray[][];

同樣需用 new 分配記憶體,分配方式有二:

  1. 直接為每維分配:int a[][] = new int[2][3];
  2. 從最高維開始分別分配:
    int a[][] = new int[2][];
    a[0] = new int[3];
    a[1] = new int[3];
    (C/C++ 必須一次指明每維長度,Java 較彈性)

二、二維陣列元素引用

arrayName[index1][index2],下標從 0 開始。

三、二維陣列初始化

  1. 逐元素賦值
  2. 定義時初始化:int a[][] = {{2,3},{1,5},{3,4}}; 定義 3×2 陣列

四、二維陣列範例:矩陣相乘

public class MatrixMultiply {
    public static void main(String args[]) {
        int a[][] = new int[2][3];
        int b[][] = {{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};
        int c[][] = new int[2][4];
        for(int i=0; i<2; i++)
            for(int j=0; j<3; j++)
                a[i][j] = (i+1)*(j+2);
        for(int i=0; i<2; i++)
            for(int j=0; j<4; j++) {
                c[i][j] = 0;
                for(int k=0; k<3; k++)
                    c[i][j] += a[i][k] * b[k][j];
            }
        // 輸出矩陣 A、B、C
    }
}

結果:
Matrix A: 2 3 4 / 4 6 8
Matrix B: 1 5 2 8 / 5 9 10 -3 / 2 7 -5 -18
Matrix C: 25 65 14 -65 / 50 130 28 -130

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