2011-03-04 57 views
1

晚上好所有,移調值中的Java 2D的ArrayList

我試圖編寫創建並返回一個2D陣列,其中每個位置元素是相同的鏡像位置的元件的方法參數數組。不幸的是,無論我在方法調用中輸入什麼樣的數字,都會在編譯器中出現「越界」錯誤。以下是我的計劃。告訴我我哪裏出了問題!謝謝!基於

public static int[][] transpose(int [][] a) { 
int r = a.length; 
int c = a[r].length; 
int [][] t = new int[c][r]; 
    for(int i = 0; i < r; ++i) { 
    for(int j = 0; j < c; ++j) { 
    t[j][i] = a[i][j]; 
    } 
    } 
return t; 
} 
} 

回答

2

數組在Java中是0,你的任務改爲Ç到:

int c = a[r - 1].length; 
0

你的問題就出在兩個線路:a[r].length返回的列數,但陣列索引從0你應該進行相應的調整:

int r = a.length - 1; 
1

@Suraj是正確的,但是你必須承擔的二維數組是矩形的,在這種情況下,將第3行更改爲:

int c = a[0].length; 

@Kris回答文本是正確的,但代碼示例是錯誤的行。

注意此錯誤是一個破碎的「答案」張貼在「雅虎問答」的再現:http://answers.yahoo.com/question/index?qid=20080121204551AAn62RO