如果我调用ArrayList.ensureCapacity()方法,性能会有任何好处吗?在哪种情况下,建议使用该方法?

最佳答案

在要向列表中添加多个元素并知道要添加多少元素的情况下,可以实现性能优势。通过调用ensureCapacity(int),您可以使底层数组的大小一次调整,而不是多次调整。

但是请注意,实际上您几乎不需要调用此方法。通常,您将以已知的容量实例化ArrayList,或者在列表大小未知的情况下,您可能应该考虑改为使用LinkedList

还要注意,ArrayList的调整大小策略通常以这样的方式实现,即阵列副本是一种罕见的操作(例如,每次阵列变满时,容量可能会增加50%)。换句话说,即使您不提前调用ensureCapacity,您也不太可能注意到代码中的任何变慢情况。

09-26 12:26