Mil*_*kar 3 java arraylist capacity java-8
以下代码确保内部容量为11,
ArrayList list = new ArrayList(11);
Run Code Online (Sandbox Code Playgroud)
那么为什么/何时我应该在外部使用公共方法ensureCapacity()?
list.ensureCapacity(11);
Run Code Online (Sandbox Code Playgroud)
如果没有用,为什么要公开?
public void ensureCapacity(int minCapacity) {
int minExpand = (elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA)
// any size if not default element table
? 0
// larger than default for default empty table. It's already
// supposed to be at default size.
: DEFAULT_CAPACITY;
if (minCapacity > minExpand) {
ensureExplicitCapacity(minCapacity);
}
}
Run Code Online (Sandbox Code Playgroud)
呼叫new ArrayList(n)初始化ArrayList容量n.
但是,可能存在这样的情况:您现在想要向已创建的元素添加大量元素ArrayList并且ArrayList已满.让我们说我们想要添加x新元素.
调用list.ensureCapacity(n + x)然后添加元素会比仅添加元素并List动态调整大小更有效.
考虑这个粗略的例子:
ArrayList<Integer> exampleList = new ArrayList<>(200);
Integer[] exampleArray = new Integer[800];
exampleList.ensureCapacity(1000);
Collections.addAll(exampleList, exampleArray);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |