对象存储容量数组列表

时间:2010-08-12 10:03:08

标签: java arrays arraylist

如果我们在Arraylist中存储巨大的对象集合时会有什么后果(即我们可能会初始化Arraylist以容纳10/100/1000个对象,但是在运行时我们可能会存储大约10万个对象)。 / p>

如果我们知道这会在某个时间点发生,那么哪个会从两个以下更好。 1)。创建一个空的arraylist或 2)。用预定义的案例创建一个arraylist。或者两者都无关紧要?

4 个答案:

答案 0 :(得分:1)

不多。每次耗尽时它都会使后备阵列的大小翻倍。最糟糕的情况是,它几乎是内容大小的两倍,并且在创建与一半大小的数组共存时。除非它们是flyweights,否则引用的对象应该占用更多的内存。

答案 1 :(得分:1)

您可以插入足够的对象,直到ArrayList的初始大小,而不会调整其大小。您添加到ArrayList的下一个对象将使其调整大小(请参阅ensureCapacity),使ArayList的容量加倍。

另见

答案 2 :(得分:0)

通过ensureCapacity将增加ArrayList的容量。

答案 3 :(得分:0)

为此,您必须进行基准测试。

对于ArrayList,arraylist被设计为始终调整大小以处理尽可能多的对象(只要JVM可以将所有这些对象保留在堆栈中)。

您无需担心阵列已满。