2012-04-04 46 views
2

前陣子我在使用可變長度參數列表(JAVA)是那些獲得定義如下方法,它在陣列

public static int[] makeArray (int... a) { 
return a; 
} 

方法打一個未定義的數字,這是一個愚蠢的程序,但它會做的只是在整數的不確定量,並創建一個數組了出來,因此所有的下方會調用同一方法

makeArray(1); 
makeArray(1,2); 
makeArray(1,2,3); 

現在我所希望做的是創建將有一個方法相同的效果,但使用數組而不是整數。我想這可能是通過將數組放入一個二維數組來實現的,但我不能100%確定這是否可行,因爲數組的大小可能會有所不同。 (甚至因爲這個原因,這是不可能的?)。但據我所知,2d數組是製作數組數組的唯一方法。

我已經試過(請注意,這是不實際使用我有這個,我只是用這個實驗,看看如何做到這一點)

public static int countArrays(int[]... a) { 
return a.length; 
} 

,這並沒有編譯。

任何人都可以提出任何建議嗎?

對於任何有興趣的人。我想要做的就是創建一個將在X很多陣列,然後根據上運行的for循環,使得其將所有的陣列

如方法:

int[] sum = new int[a[0].length]; 
for (int i=0; i<a.length; i++){ 
for (int j=0; j<a[0].length; j++){ 
n[i] += a[i][j]; 
}} 

回答

2

不知道爲什麼你說沒有關係編譯 - 下面的例子適用於我(編譯和打印2):

public static void main(String[] args) throws Exception { 
    int[] i1 = new int[]{1,2,3}; 
    int[] i2 = new int[]{1,2,3}; 
    int count = countArrays(i1, i2); 
    System.out.println(count); 
} 

public static int countArrays(int[]... a) { 
    return a.length; 
} 
+0

剛做完一樣,編譯得很好。 – hmjd 2012-04-04 10:24:45

+0

謝謝,我再次嘗試,並注意到這是一個愚蠢的錯誤。我唯一犯的錯誤是事實上我將參數設置爲double而不是int,並假定它是整個參數不正確,而不是數字類型。愚蠢的我... – justingiffard 2012-04-04 14:25:33

0

關於數組可能大小不同的觀點。您可以使用以下內容:

int[][] b = new int[10][]; 
int[] c = new int[2]; 
int[] d = new int[2131231]; 
b[0] = c; 
b[1] = d; 

不要預先定義數組內部數組的長度 - 這將完成所有業務。