陣列的宣告與建立很簡單,例如,以下的程式碼宣告建立一個整數陣列的參考變數 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?
這個範例寫錯了,已修改,感謝指正 :)
張貼留言