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. 宣告陣列
語法
<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