2013-07-18 80 views

回答

6
Object[][] data=array.toArray(); 

Object []的內部被視爲一種對象本身。然後將它們放入它們自己的數組中,導致一組數組對象的對象,或者只是一個二維數組。

1

鑄造不是你正在尋找的解決方案。鑄造基本上可以讓你使用一種方法轉換成特定的類類型。鑄造的一個示例:

(((ClassA的)CLASSB)。方法())

所以返回的值可以放置從實例化對象CLASSB一個ClassA的對象,其中包含方法的()內。你要做的另一方面是創建一個多維數組或2D數組。這本質上是一個數組的數組,其中arrayA [i] = arrayB [];

例如:

Object[] objectArray = new Object[5]; 
Object[][] = objectArray2D = new Object[][]; 

objectArray2D[i] = objectArray; 

這裏是一個點,你的問題不過,如果你創建一個多維數組,你爲什麼還要給它只有一個數組實例。基本上你會在上面的例子中創建一個數組在數組中,因爲你會給它只有一個數組索引的數組中的所有對象將是相同的,如果你有一個數組,但有一個額外的安置。讓我來解釋:

objectArray [0] ==你放在objectArray的第一個時隙的對象

而objectArray2D [0] [0] ==完全相同的對象作爲objectArray對象[0]

對一個數組使用多維數組沒有任何優勢。如果您要向二維數組索引索引[1] [0],則會收到超出範圍的異常。

最後,我建議你創建一個特定形式的數組,例如int []或string []。 Object []數組的問題在於,您可以將任何被視爲Object的對象存儲到數組中,從而允許在一個數組內存在不同類型對象的潛在集羣。例子你可以有一個objectArray [0] = int 1;和objectArray [1] =一個字符串;除非你想在數組使用中非常具體,否則使用一個Object類型作爲數組可能會更好。

在任何情況下,最終的解決方案到底該怎麼做你想要做的是如下:

ArrayList<Object[]> array; 
Object[][] data; 

public void changeToAnArray(ArrayList<Object[]> array, Object[][] data) 
{ 
    this.array = array.toArray(); 
    this.data[0] = array; 
} 

也充分注意到一個ArrayList的角度來看,是有本質上是一個二維數組,而不必解析索引。

請任何人隨時糾正我錯誤的部分< <仍在學習。