2013-02-11 60 views
-5

我對經由通過單,雙的ArrayLists的非空參數的一類方法,例如返回一個int [] []:的ArrayList爲int [] [] - 索引超出範圍異常

//outer loop 
ArrayList<ArrayList<Integer>> rowsInMatrixA; 
//inner loop 
ArrayList<Integer> colsInMatrixA; 

僅使用本地Java。我在這裏搜索了很多,在Java API,Java教程和許多其他地方。歡迎所有的想法和建議。

編輯這裏就是我已經試過:

public static int[][] convertIntegers(ArrayList<ArrayList<Integer>> rows, ArrayList<Integer> cols) 
{ 
    int[][] newMatrix = new int[rowsInMatrixA.size()][colsInMatrixB.size()]; 
    //iterate outer, through rows 
    for (int i=0; i < newMatrix.length; i++) 
    { 
     //iterate inner, through columns 
     for(int j = 0; j < newMatrix[0].length; j++){ 

      newMatrix[i][j] = rows.get(i).get(j); 
     } 
    } 
    return newMatrix; 
} 

它仍然不工作:我得到一個IndexOutOfBoundsException異常在這條線上,當我編譯並嘗試在主讓打印輸出:

newMatrix[i][j] = rows.get(i).get(j); 

這怎麼解決?我將不勝感激任何幫助。謝謝。

+1

好的,這裏有一個建議 - 首先嚐試一下。如果您似乎無法解決問題,請發佈您在此嘗試的內容,我們將幫助您解決問題。 – 2013-02-11 08:28:26

+1

您需要兩個循環。嘗試一下。 – 2013-02-11 08:28:38

+0

沒有嘗試自己動手讓你從我身上得到-1。 – ATrubka 2013-02-11 08:29:16

回答

0

我認爲這可以很容易地通過循環arraylist。

+1

我覺得這不是一個答案,這是一個評論,我不downvoter :) – 2013-02-11 08:35:47

0

你宣佈你的函數錯誤:

它應該返回int[][]而不是int[]。另外,newMatrix[i]代表一維數組。你不能把Integers放進去。改爲使用newMatrix[i][j]

+0

我欣賞提示;我希望我能弄明白。 – OcelotXL 2013-02-11 08:51:19