ArrayList 默认的初始大小
通常初始大小应该在 ArrayList 构造函数中给出,如 new ArrayList(5) 。
但是如果我们不传递任何大小,则使用默认大小,即 10.
/** * Default initial capacity. */ private static final int DEFAULT_CAPACITY = 10;
建议如果我们知道要存储在列表中的正确或者估计元素数量,则始终在列表构造函数中传递大小。
它消除了调整数组列表大小的需要,从而提高了性能。
https://onitroad.com 更多教程
如何增加arraylist容量——ArrayList ensureCapacity()方法
通常,我们不需要做任何事情来增加大小,因为 arraylist 会自动为我们管理大小并在需要时增加大小。
但是,为了一次又一次地删除调整大小操作,我们可以使用 ensureCapacity() 方法确保创建 arraylist 后所需的容量。
如有必要,此方法会增加 ArrayList 实例的容量,以确保它至少可以容纳该方法的最小容量参数指定的元素数量。
它在内部使用grow() 方法。
private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (oldCapacity >> 1); if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); // minCapacity is usually close to size, so this is a win: elementData = Arrays.copyOf(elementData, newCapacity); }
在后端,此方法只是创建一个具有所需大小的新数组。
ArrayList ensureCapacity()方法 示例
Java 程序使用 ensureCapacity() 方法在初始化后增加数组列表的大小。
public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(2); list.add("A"); list.add("B"); System.out.println(list); list.ensureCapacity(20); list.add("C"); list.add("D"); list.add("E"); System.out.println(list); } }
程序输出。
[A, B] [A, B, C, D, E]
Java ArrayList 在内部使用一个用于存储列表对象的后备数组对象。
所有 ArrayList 方法都对这个数组及其元素进行操作。
日期:2020-09-17 00:09:32 来源:oir作者:oir