Cem*_*mre 5 java arraylist capacity
正如标题所提到的,如果我创建一个初始容量为 500 的 ArrayList,然后在一段时间后清除它,它的容量仍然是 500 吗?或者我需要为此重新初始化它吗?
是的,它保留了其容量。(至少在 Oracle VM 的实现中不是):
/**
* Removes all of the elements from this list. The list will
* be empty after this call returns.
*/
public void clear() {
modCount++;
// Let gc do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
Run Code Online (Sandbox Code Playgroud)
需要明确的是: anArrayList由数组支持(例如 ArrayList 的 int[]),并且每当您通过创建新数组并复制内容来超出容量时,该数组就会扩展。清除不会(如代码中所示)创建一个新的较小数组,将内容复制到那里,并销毁旧的大数组。
| 归档时间: |
|
| 查看次数: |
1974 次 |
| 最近记录: |