Java編程那些事兒49—多維陣列使用樣本1鄭州遊戲學院 陳躍峰出自:http://blog.csdn.net/mailbomb
6.6 多維陣列使用樣本 多維陣列在實際使用時,更多的在於數組的設計,在實際使用中,一般對於多維陣列的統計相對來說比一維數組要少一些,更多的設計數組的大小,並規定數組中儲存值的含義,在代碼中按照值的規定使用數組。 所以在實際使用多維陣列以前,需要考慮清楚:l 需要幾維數組l 每一維的長度是多少l 按照怎樣的規則儲存值l 數組值的意義是什麼
6.6.1 拉丁方陣 要求:實現任意階拉丁矩陣的儲存和輸出拉丁矩陣是一種規則的數值序列,例如4階的拉丁矩陣如下所示:1 2 3 42 3 4 13 4 1 24 1 2 3該矩陣中的數字很規則,在實際解決該問題時,只需要把數值的規律描述出來即可。實現思路:聲明一個變數n,代表矩陣的階,聲明和初始化一個nXn的數組,根據資料的規律,則對應的數值為(行號 + 列號 + 1),當數值比n大時,取和n的餘數。實現的代碼如下: int n = 6; int[][] arr = new int[n][n]; int data; //數值 //迴圈賦值 for(int row = 0;row < arr.length;row++){ for(int col = 0;col < arr[row].length;col++){ data = row + col + 1; if(data <= n){ arr[row][col] = data; }else{ arr[row][col] = data % n; } } } //輸出數組的值 for(int row = 0;row < arr.length;row++){ for(int col = 0;col < arr[row].length;col++){ System.out.print(arr[row][col]); System.out.print(' '); } System.out.println(); } 該代碼中變數data儲存行號+列號+1的值,每次在賦值時判別data的值是否小於等於n,根據判斷的結果賦值對應數組元素的值。 在解決實際問題時,觀察數字規律,並且把該規律使用程式進行表達,也是每個程式員需要的基本技能。
6.6.2 楊輝三角 要求:實現10行楊輝三角元素的儲存以及輸出。 楊輝三角是數學上的一個數字序列,該數字序列如下: 11 11 2 11 3 3 11 4 6 4 1該數字序列的規律為,數組中第一列的數字值都是1,後續每個元素的值等於該行上一行對應元素和上一行對應前一個元素的值之和。例如第五行第二列的數字4的值,等於上一行對應元素3和3前面元素1的和。實現思路:楊輝三角第幾行有幾個數字,使用行號控制迴圈次數,內部的數值第一行賦值為1,其它的數值依據規則計算。假設需要計算的數組元素下標為(row,col),則上一個元素的下標為(row – 1,col),前一個元素的下標是(row – 1,col – 1)。實現代碼如下: int[][] arr = new int[10][10]; //迴圈賦值 for(int row = 0;row < arr.length;row++){ for(int col = 0;col <= row;col++){ if(col == 0){ //第一列 arr[row][col] = 1; }else{ arr[row][col] = arr[row - 1][col] + arr[row - 1][col - 1]; } } } //輸出數組的值 for(int row = 0;row < arr.length;row++){ for(int col = 0;col <= row;col++){ System.out.print(arr[row][col]); System.out.print(' '); } System.out.println(); }該題目中數字之間的規律比較簡單,主要是理解數組的下標基本的處理,加深對於數組下標的認識,控制好數組元素的值。