如何处理对象数组的对象数组

时间:2013-04-13 09:37:59

标签: java arrays multidimensional-array jagged-arrays

我有这段代码:

Object [] array=new Object array [5];
array[0]= new Object[3];
array[1]=new Object [10];
array[2]=new Object [7];
...

如何访问数组[1]的第5个元素。 如果它是2D数组,我会说:

Object o=array [1][5];

但我不想要2D数组,因为我不想浪费内存,因为数组的大小因数组而异。

如果有人能回答我这个问题会很棒。

顺便说一句我不想使用矢量等...

谢谢

1 个答案:

答案 0 :(得分:5)

你可以这样做:

//This creates a 5 by ? array
Object[][] array = new Object[5][];

array[0] = new Object[3];
array[1] = new Object[10];
array[2] = new Object[7];
....

编辑(感谢评论者):

array是一个数组数组。 array中的每个元素都指向一个对象数组。 内存不会浪费在拥有比需要更多的元素上。

看起来像这样

[a00][a01][a02]
[a10][a11][a12][a13][a14][a15][a16][a17][a18][a19]
[a20][a21][a22][a23][a24][a25][a12]

如果你现在想要访问第二个数组的第6个元素,你可以这样做:

Object myObj = array[1][5];