实例化ArrayLists的ArrayList

时间:2013-09-01 04:01:55

标签: java arraylist

我想实例化ArrayLists的ArrayList(泛型类型)。我有这段代码:

private ArrayList<ArrayList<GameObject>> toDoFlags;
toDoFlags = new ArrayList<ArrayList<GameObject>>(2);

我这样做了吗?它编译,但是当我查看ArrayList时,它的大小为0。

2 个答案:

答案 0 :(得分:6)

你做得对。它长度为零的原因是因为你还没有添加任何东西。

传递的“2”是支持ArrayList的数组的初始容量。但size()的{​​{1}}方法不返回其后备数组的初始容量...它返回列表中实际元素的数量。

通常,您不应使用ArrayList参数。当你有大型ArrayLists时,这是一个性能优化。通过明确分配大量空间,可以节省在向列表中添加越来越多项目时重新分配所需的时间。但在这种情况下,你可能没有一个非常大的列表。

此外,您应该考虑编写一个类来存储数据,而不是使用ArrayLists的ArrayList。

答案 1 :(得分:1)

ArrayLists会在您添加时进行扩展。整数容量参数仅设置后备阵列的初始大小。将容量设置为2并不意味着ArrayList中有两个元素,而是在必须声明更大的内部数组之前,可以将两个元素添加到ArrayList中。