Java 实例化ArrayList中的ArrayList

Java 实例化ArrayList中的ArrayList,java,arraylist,Java,Arraylist,我想实例化(泛型类型)ArrayList的ArrayList。我有以下代码: private ArrayList<ArrayList<GameObject>> toDoFlags; toDoFlags = new ArrayList<ArrayList<GameObject>>(2); private ArrayList toDoFlags; toDoFlags=新阵列列表(2); 我这样做对吗?它可以编译,但当我查看ArrayList时,它的

我想实例化(泛型类型)ArrayList的ArrayList。我有以下代码:

private ArrayList<ArrayList<GameObject>> toDoFlags;
toDoFlags = new ArrayList<ArrayList<GameObject>>(2);
private ArrayList toDoFlags;
toDoFlags=新阵列列表(2);

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

你做得对。它的长度为零的原因是您尚未向它添加任何内容

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

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


此外,不要使用数组列表的数组,你应该考虑编写一个类来存储你的数据。

AARYLIST在你添加到它们时展开。integer capacity参数只设置支持数组的初始大小。将容量设置为2并不意味着ArrayList中有两个元素,而是意味着可以在ArrayList声明更大的内部数组之前将两个元素添加到ArrayList。

要添加到这一点,末尾的(2)只为列表中的两个对象分配空间。我想这就是混乱的根源。