Trove から TXXXXArrayList オブジェクトのサイズを設定するには? たとえば、サイズを設定することは可能TIntArrayList
ですか?
私が見つけた唯一の方法は、要素(ゼロ)を追加することです。プリミティブ配列の初期化または追加を可能にするバルク メソッドでさえ、要素ごとのコピーを実行します。つまり、作業が 2 倍になります。
プレーンなJavaで配列のサイズを設定することは可能ですが:
int[] array = new int[1000000];
作成され、ゼロで埋められます。Trove は 2 回行います:
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);
}
}