如何从 Trove 设置 TXXXXArrayList 对象的大小?例如,是否可以设置的大小TIntArrayList
?
我发现的唯一方法是添加元素(零)。甚至允许初始化或添加原始数组的批量方法也会按元素进行复制,即加倍工作。
虽然可以使用普通 java 设置数组的大小:
int[] array = new int[1000000];
它将被创建并用零填充。Trove 等效项执行两次:
TIntArrayList array = new TIntArrayList(new int[1000000]);
首先它分配原始数组,然后将其复制到类中。
如何一步到位?
更新
Wrap 方法允许加速,但禁止作为收益增长:
TIntArrayList array = TIntArrayList.wrap(new int[1000000]);
更新2
容量不是大小。下面的程序打印零并抛出ArrayIndexOutOfBoundsException
:
package tests.gnu.trove;
import gnu.trove.list.array.TIntArrayList;
public class Try_Capacity {
public static void main(String[] args) {
TIntArrayList array = new TIntArrayList(10);
array.ensureCapacity(10);
System.out.println(array.size());
array.set(5, 10);
}
}