如果我们在Arraylist中存储巨大的对象集合时会有什么后果(即我们可能会初始化Arraylist以容纳10/100/1000个对象,但是在运行时我们可能会存储大约10万个对象)。 / p>
如果我们知道这会在某个时间点发生,那么哪个会从两个以下更好。 1)。创建一个空的arraylist或 2)。用预定义的案例创建一个arraylist。或者两者都无关紧要?
答案 0 :(得分:1)
不多。每次耗尽时它都会使后备阵列的大小翻倍。最糟糕的情况是,它几乎是内容大小的两倍,并且在创建与一半大小的数组共存时。除非它们是flyweights,否则引用的对象应该占用更多的内存。
答案 1 :(得分:1)
您可以插入足够的对象,直到ArrayList
的初始大小,而不会调整其大小。您添加到ArrayList的下一个对象将使其调整大小(请参阅ensureCapacity
),使ArayList的容量加倍。
答案 2 :(得分:0)
通过ensureCapacity将增加ArrayList的容量。
答案 3 :(得分:0)
为此,您必须进行基准测试。
对于ArrayList,arraylist被设计为始终调整大小以处理尽可能多的对象(只要JVM可以将所有这些对象保留在堆栈中)。
您无需担心阵列已满。