不,
ensureCapacity不改变 逻辑大小 的
ArrayList-它改变的 能力 ,它的大小列表前,可以在到达下一个需要复制的值。
您需要非常清楚逻辑大小(即范围内的所有值
[0,size)都可以访问,并且添加新元素将在index处添加
size)与容量(实际上是实现细节)之间的区别。用于存储的后备阵列的数量。
调用
ensureCapacity仅应在性能方面有所不同(通过避免过度复制)-如果您明白我的意思,它不会影响列表中内容的逻辑模型。
编辑:听起来你想要一种
ensureSize()方法,可能看起来像这样:
public static void ensureSize(ArrayList<?> list, int size) { // Prevent excessive copying while we're adding list.ensureCapacity(size); while (list.size() < size) { list.add(null); }}


