2006年12月17日 星期日

陣列物件

陣列物件
陣列也是一種物件。通常用來放置同型態的資料。
如果要放 10 個人的年齡,而要取 10 個變數名稱的話,
那就太麻煩了!

因此,除了用 int 變數名稱 = 數字的這種方法外,
利用一維陣列 (one-dimensional arrays) 把他們整理起來。
int v;
int[] va = new int[5]; //宣告,建立這個物件
System.out.println(va[0]); //會印出陣列的初始值

va[0]=32;
va[1]=33;
va[2]=34;
va[3]=35;
va[4]=36;
for (int i=0 ; i <5 ; i++) {
System.out.println( va[i]);
}
剛建立好陣列的時候,各資料的資料型態會有不同的初始值。
每個資料稱為:元素 (element)。
初始值還可以這樣設定
int[] va= new int[]{32,33,34,35,36};
for (int i=0 ; i < names.length ; i++) {
//存取時不能超過陣列邊界
System.out.println(va[i]);
}
所有的陣列物件都有一個 .length 屬性。
可以善加利用
String[] names = new String[3];
names[0] = "Simon";
names[1] = "Mary";
names[2] = "John";
for (int i=0; i < names.length ; i++){
System.out.println(names[i]);
}
//String 物件的初始值為 null //
利用迴圈印出 3x3的方塊(二維矩陣)
但3x3程式無法適用於不規則陣列。
要改成下列程式:
int[][] ia = {{1,2,3},{4,5,6,7,8},{9,10,11,12}};
for (int i=0; i<ia.length; i++) {
for (int i2=0; i2<ia[i].length; i2++) {
System.out.print(ia[i][i2] + "\t");
}
System.out.println();
}
//其中尤其是 la[i].length 要特別小心
不規則陣列用於行事曆程式
int m=PPJUtil.getInt("Month");
//簡易行事曆程式
String[][] cal = new String[12][];
cal[0] = new String[31];
cal[1] = new String[28];
cal[2] = new String[31];
cal[3] = new String[30];
cal[4] = new String[31];
cal[5] = new String[30];
cal[6] = new String[31];
cal[7] = new String[31];
cal[8] = new String[30];
cal[9] = new String[31];
cal[10] = new String[30];
cal[11] = new String[31];
//行事曆內容
cal[11][16] = "要上Java課"
cal[11][23] = "要上Java課"
//顯示內容
for(int j=0; j<cal[m-1].length; j++) {
if (cal[m-1][j] != null) {
System.out.println((m) + "/" + (j+1) + ":" + cal[m-1][j]);
}
另外有一種foreach 的作法
for (int[] x:ia ) {
for (int y:x ) {
System.out.print(y+ "\t");
}
System.out.println();
}
main 方法中的參數
命令列引數是一個非常特別字串物件陣列
例如操作者下
編譯 javac Test.java
執行 java Test Simon Mary "This is a book"

在 EditPlus 執行過程中可以用 Ctrl-3 來加入命令參數。
for (String s:args) {
System.out.println(s);
}



沒有留言: