Sam*_*til 4 java collections performance arraylist
如果我调用ArrayList.ensureCapacity()方法,是否有任何性能优势.在什么情况下建议使用该方法?
如果您要将多个元素添加到列表中并知道要添加多少元素,则可以实现性能优势.通过调用ensureCapacity(int)您可以使基础数组一次调整大小,而不是多次调整大小.
但请注意,实际上你应该很少需要调用这个方法; 通常,您将使用ArrayList已知容量实例化,或者在列表大小未知的情况下,您应该考虑使用LinkedList替代.
还要注意,调整大小策略ArrayList通常以这样的方式实现,即阵列副本是罕见的操作(例如,每次阵列变满时容量可能增加50%).换句话说,即使您没有ensureCapacity提前致电,您也不会注意到代码中的任何减速.