2013-04-27 55 views
-3

我有以下方法應該返回一個31行的數組(每行有31個索引)。這裏是我的代碼:如何用增量行和固定數量的索引創建一個數組

public static int[] funcA (int[] arrayB,int[] arrayC){ 
    int d,i; 
    int [] arrayA = new int[31]; 
    int [] arrayD= new int[31]; 

    for (d=0; d<31; d++){ 
     int []temp = new int[31]; 
     for (i=0; i<31; i++){ 
      arrayA [i] = arrayB[i]^arrayC[i]; 
      } 
     // at this point, 31 values are generated inside the arrayA. 
     // my problem is here: the 31 values of arrayA should be assigned to arrayD in row[d](the row has 31 indexes) 
     // then, an operation occur to arrayC and the values of arrayA are changed   
    } 
    return arrayD; 
} 

如何做到這一點?如何創建具有兩個維度的arrayD,並在每次arrayA發生變化時(將數組A的arrayA的歷史記錄存儲在arrayD中,因此每個數據行都在D中)將31個值(arrayA)傳遞給一行(31個索引)代表A)的不同狀態?

+2

而且你的代碼試圖... – 2013-04-27 15:14:51

+0

這真的沒有明確發生了什麼事情,特別是你永遠做什麼用tempArray ... – 2013-04-27 15:16:22

+0

@ LuiggiMendoza:事情是:非他們工作,我不保留代碼不起作用,對不起(我明白我們的關注)。然而,在寫這個問題後:我想知道是否有一種方法可以將我的arrayA保存爲一個公共變量,就像在C++中一樣? – 2013-04-27 15:18:30

回答

3

i公共變量與初始值0

private void copy(int[] arrayA, int[][] arrayD) { 
    int copySize = arrayA.length; 
    System.arraycopy(arrayA, 0, arrayD[i], 0, copySize); 
    // i should increment every time the 'history' is stored in arrayD 
    i++; 
} 
+0

你是否在傳遞給這個函數之前用'new'初始化'arrayA'和'arrayD'? – gkiko 2013-04-27 19:23:34

+0

它的工作原理,但I和arrayD必須是公共變量..感謝 – 2013-04-27 19:35:07

+1

隨着'i'不公開,這將是難以實現此方法。不確定'arrayD'它必須是公開的。 – gkiko 2013-04-27 19:51:30

相關問題