Java 陣列

陣列是一種非常常見的資料結構型別,其中所有元素必須具有相同的資料型別。一旦定義後,陣列的大小是固定的,並且不能增加以容納更多元素。陣列的第一個元素的索為零。

簡單來說,陣列是一個可以替代下面程式碼的程式設計結構,

x0=0;
x1=1;
x2=2;
x3=3;
x4=4;
x5=5;

用了陣列後,

x[0]=0;
x[1]=1;
x[2]=2;
x[3]=3;
x[4]=4;
x[5]=5;

這變數可以用索引(括號 [ ] 中的數字)以便於迴圈。

for(count=0; count<5; count++) {
     System.out.println(x[count]);
   }

陣列變數

在程式中使用陣列的步驟 -

  1. 宣告陣列
  2. 構建陣列
  3. 初始化陣列

1. 宣告陣列

語法

<elementType>[] <arrayName>;

或者,

 <elementType> <arrayName>[];

舉例如下,

int intArray[];
 //Defines that intArray is an ARRAY variable which will store integer values
int []intArray;

2. 構建陣列

 arrayname = new dataType[]

比如,

intArray = new int[10]; //Defines that intArray will store 10 integer values

合併宣告和構建

int intArray[] = new int[10];

3. 初始化陣列

intArray[0]=1; //Assigns an integer value 1 to the first element 0 of the array
intArray[1]=2; //Assigns an integer value 2 to the second element 1 of the array

宣告並初始化陣列

 <elementType> []  = {...};

例:

int intArray[] = {1, 2, 3, 4};
//Initilializes an integer array of length 4 where the first element is 1 , second element is 2 and so on.

Java 陣列示例

class ArrayDemo{
     public static void main(String args[]){
        int array[] = new int[7];
        for (int count=0;count<7;count++){
           array[count]=count+1;
       }
       for (int count=0;count<7;count++){
           System.out.println("array["+count+"] = "+array[count]);
       }
      //System.out.println("Length of Array  =  "+array.length);
      //array[8] =10;
      }
}

儲存、編譯和執行程式碼。觀察輸出

輸出:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

如果 x 是對陣列的引用,x.length 將給出陣列的長度。

取消註釋行

 //System.out.println("Length of Array  =  "+array.length);

儲存、編譯和執行程式碼。觀察輸出

Length of Array  =  7

與 C 語言不同,Java 在訪問陣列時檢查陣列的邊界。Java 不允許索引超越其邊界。

取消程式中下面的註釋,

//array[8] =10;

儲存、編譯和執行程式碼。觀察輸出

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

它丟擲 ArrayIndexOutOfBoundsException 錯誤。在 C 語言中,相同的程式碼將顯示一些垃圾值。

Java 陣列 - 傳遞引用

陣列通過引用傳遞給函式,或作為指向原始的指標。這意味著你對函式內部所做的任何操作都會影響原始函式。

示例:瞭解陣列是通過引用傳遞的

class ArrayDemo {
   public static void passByReference(String a[]){
     a[0] = "Changed";
   }
 
   public static void main(String args[]){
      String []b={"Apple","Mango","Orange"};
      System.out.println("Before Function Call    "+b[0]);
      ArrayDemo.passByReference(b);
      System.out.println("After Function Call    "+b[0]);
   }
}

儲存、編譯和執行程式碼。觀察輸出

輸出:

Before Function Call    Apple
After Function Call    Changed

多維陣列

多維陣列實際上是陣列的陣列。

要宣告多維陣列變數,請使用另一組方括號指定每個附加索引。

int twoD[ ][ ] = new int[4][5] ;

為多維陣列分配記憶體時,只需指定第一個(最左側)維的記憶體。你可以單獨分配剩餘的陣列大小。

在 Java 中,多維陣列中每個陣列的陣列長度由你控制。

public class Tastones {
    public static void main(String[] args) {
    //Create 2-dimensional array.
      int[][] twoD = new int[4][4];
      //Assign three elements in it.
      twoD[0][0] = 1;
      twoD[1][1] = 2;
      twoD[3][2] = 3;
      System.out.print(twoD[0][0] + " ");
    }
}

輸出:

1