gpt4 book ai didi

java - ArrayList.ensureCapacity() 有性能优势吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:56:26 25 4
gpt4 key购买 nike

如果我调用 ArrayList.ensureCapacity() 方法,是否有任何性能优势。在什么情况下建议使用该方法?

最佳答案

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

但是请注意,实际上您应该很少需要调用此方法;通常,您将实例化具有已知容量的 ArrayList,或者在列表大小未知的情况下,您可能应该考虑改用 LinkedList

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

关于java - ArrayList.ensureCapacity() 有性能优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952700/

25 4 0