簡體   English   中英

Java-轉換ArrayList <Object[]> 反對[][]?

[英]Java - Casting ArrayList<Object[]> to Object[][]?

好的,所以這是我面臨的一個小問題-Java中是否有一種簡單的方法可以強制轉換

ArrayList<Object[]> array;

Object[][] data;

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

Object []的內部本身被視為一種對象。 然后將它們放入自己的數組中,從而生成對象的對象數組或二維數組。

鑄造不是您要找的解決方案。 強制轉換實際上允許您使用強制轉換為特定類類型的方法。 強制轉換的示例:

((((ClassA)classB).method())

因此可以將返回的值放在包含method()的實例化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]中的對象完全相同

通過將一個多維數組用於一個數組,您沒有獲得任何好處。 如果要向2D數組查詢索引[1] [0],則會收到超出范圍的異常。

最后,我建議您創建一種特定形式的數組,例如int []或string []。 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的要點實際上是具有2D數組,而不必解析索引。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM