陣列的宣告與建立很簡單,例如,以下的程式碼宣告建立一個整數陣列的參考變數 intArray
int[] intArray = {33, 44, 55};
intArray 內有 33 、 44 、 55 三個整數。陣列的索引是從 0 開始,所以可用
int a = intArray[0];
使變數 a 得到 33 的整數值。
以下程式示範計算整數陣列中所有整數的平均值
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); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:Array1Demo.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 修改:西元 2013 年 4 月*/
編譯後執行,結果如下
若要新建一個備用的陣列,需要用到陣列的建構子 (constructor) ,如
char[] copyArray = new char[5];
這便建立一個長度為 5 字元陣列 copyArray ,此陣列中每個元素 (element) 會被初始化給 '\0' ,也是是字元型態的 0 。
以下程式示範利用 System 類別的 arraycopy() 拷貝字元陣列
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); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:Array2Demo.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 */
編譯後執行,結果如下
第 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?
這個範例寫錯了,已修改,感謝指正 :)
張貼留言