2016-12-01 69 views
1

我想在第一個數組中創建2個單元格,但在第二個數組中,我想要4個單元格。我可以在陣列2D中創建更多列嗎?

這在Java中是否可行?它是否合乎邏輯?

例子:

public void stack(){ 
    int a[][] = {{2,5234},{5,33,345,45}}; 
} 
+0

我可以在第二個數組中創建更多的單元格(在數組2D中)? –

回答

5

是的,這是可能的:

int[][] a = new int[2][]; 
a[0] = {2, 5234}; 
a[1] = {5, 33, 345, 45}; 

或者,如果你想內嵌整個定義:

int[][] a = new int[][]{{2, 5234}, {5, 33, 345, 45}}; 
+0

太好了!非常感謝你的幫助。 –

3

這就是所謂的「鋸齒形陣列「。如果你想聲明的這些尺寸,你可以用二維數組聲明開始:

int[][] a = new int[2][]; 

,然後就可以使長度不管你請

a[0] = new int[2]; 
a[1] = new int[4]; 

本質上的第二維度數組本身就是數組。你可以明確地要用作什麼寫:

a[0] = [2, 5234]; 
a[1] = [5, 33, 345, 45]; 

,此外,您可以訪問第二個維度的長度:

int lengthOne = a[0].length; 
int lengthTwo = a[1].length; 

是它的邏輯?絕對。鋸齒形陣列對於不適合經典表格格式的東西(如記錄溫度)非常有用。這可以被記錄爲(例如):

double[][] temperatures = new double[12][]; 

哪裏有一年12個月,:

temperatures[0] = new double[31]; 

月份有31天。

+0

哇!謝謝你爲我提供的這個驚人的解釋,我想給你+1,但是我的聲望不到15,xD。再次感謝你:D –

相關問題