陣列的宣告與建立很簡單,例如,以下的程式碼宣告建立一個整數陣列的參考變數 intArray
int [] intArray = { 33 , 44 , 55 }; |
intArray 內有 33 、 44 、 55 三個整數。陣列的索引是從 0 開始,所以可用
int a = intArray[ 0 ]; |
使變數 a 得到 33 的整數值。
以下程式示範計算整數陣列中所有整數的平均值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Array1Demo { public static void main(String[] args) { int [] intArray = { 12 , 33 , 65 , 32 , 11 , 76 , 98 , 23 , 55 , 34 , 76 , 81 , 54 }; double sum = 0.0 ; double average; for ( int item : intArray) { sum += item; } average = sum / intArray.length; System.out.println(average); } } /* 《程式語言教學誌》的範例程式 檔名:Array1Demo.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 修改:西元 2013 年 4 月*/ |
編譯後執行,結果如下

若要新建一個備用的陣列,需要用到陣列的建構子 (constructor) ,如
char [] copyArray = new char [ 5 ]; |
這便建立一個長度為 5 字元陣列 copyArray ,此陣列中每個元素 (element) 會被初始化給 '\0' ,也是是字元型態的 0 。
以下程式示範利用 System 類別的 arraycopy() 拷貝字元陣列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Array2Demo { public static void main(String[] args) { char [] charArray = { 'H' , 'e' , 'l' , 'l' , 'o' , ' ' , 'w' , 'o' , 'r' , 'l' , 'd' , '!' }; char [] copyArray = new char [ 5 ]; System.arraycopy(charArray, 6 , copyArray, 0 , 5 ); System.out.println(copyArray); } } /* 《程式語言教學誌》的範例程式 檔名:Array2Demo.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 */ |
編譯後執行,結果如下

第 6 行
6 | System.arraycopy(charArray, 6 , copyArray, 0 , 5 ); |
arraycopy() 需要 5 個參數,這個方法的宣告如下
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) |
src 表示來源陣列, srcPos 為起始索引值, dest 為所要複製到的陣列, destPos 為複製陣列的目標起始位址, length 為所要複製的長度,也就是元素個數。
中英文術語對照 | |
---|---|
陣列 | array |
資料型態 | data type |
容器 | container |
資料結構 | data structure |
建構子 | constructor |
元素 | element |
2013 年 4 月改正
5 則留言:
此陣列中每個元素 (element) 會被初始化給 '\0' ,也是是字元型態的 0
→ 可是上面的
char[] copyArray = new char[5];
是char耶,不是int,怎麼會是0呢?
我查到
http://mis.hwai.edu.tw/~kevin/MISProject/JAVAProject/chapter4/c4-2.htm
寫,字元型態的初始值,是"\u0000"
對嗎?
'\0' 與 '\u0000' 就是相同的字元唷,另外雙引號是字串不是字元。
這裡講 0 是一種比喻的方式,像是整數的 0 ,並不代表 '\0' 是整數 0 。
計算整數平均值的例子中,i的初始值是否該設為0?
這個範例寫錯了,已修改,感謝指正 :)
張貼留言