ArrayList调整大小

Sot*_*lis 4 java arraylist

我有一个ArrayList对象,我知道它的确切大小.有没有办法指定ArrayList不应该扩展其容量?

List<String> list = null;
int size = getSize(); // gets the exact number of elements I want

list = new ArrayList<String> (size);

for (int i = 0; i < size; i++) {
    list.add("String num: " + i);
}
Run Code Online (Sandbox Code Playgroud)

我不希望ArrayList重新调整大小,因为这需要我想避免浪费的时间.

Ash*_*Jha 15

list = new ArrayList<String> (size);
Run Code Online (Sandbox Code Playgroud)

这将创建以'size'作为初始容量的arraylist.只要您不添加超过"大小"的元素,就不会调整大小.

另外请确保您的申请需要时间.除非您已经对此进行了分析并将其识别为问题,否则您将无法通过随机优化代码获得更多收益.


Jon*_*eet 5

ArrayList如果您不添加超出其容量的元素,则不会调整大小.你已经创建了具有合适容量的列表,所以应该没问题.

如果你试图超过原始容量,你可以创建一个抛出异常的列表,但是不清楚为什么这对你有用.

  • 就像附加信息一样,你可以使用[`ensureCapacity(int minCapacity)`]任意调整一个`ArrayList`(http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html# ensureCapacity%28int%29)方法. (2认同)