-2

配列に変換したい Arraylist があります。私はこれを使用しています:

double[] array = new double[list.size()];
double [] array = list.toArray(new double[list.size()]);

しかし、うまくいきません。どうすれば修正できますか?前もって感謝します。オブジェクトを返すようです。

4

6 に答える 6

4

List<Double>aを aに変換するdouble[]場合、またはプリミティブ型が必要な場合は、従来のループを実行する(またはGuava の などforの従来のループを実行するサードパーティ ライブラリ メソッドを呼び出す) 以外に方法はありません。forDoubles.toArray

double[] array = new double[list.size()];
for (int i = 0; i < list.size(); i++) {
  array[i] = list.get(i);
}

または、次のことができます

Double[] array = list.toArray(new Double[list.size()]);

とにかくDoubleあなたの目的には十分かもしれません。

于 2013-04-02T19:57:35.780 に答える
3

List にプリミティブ型を含めることはできません。のインスタンスが含まれていると仮定するとDouble、唯一の方法は、リストを反復処理して各要素のボックス化を解除することです (リストに null がないことを願っています)。

double[] array = new double[list.size()];
int i = 0;
for (Double d : list) {
    array[i] = d;
    i++;
}
于 2013-04-02T19:58:07.400 に答える
0

そのはず:

Double[] array = new Double[list.size()];
list.toArray(array); // fill the array

プリミティブの配列が必要な場合は、配列内の各要素を反復処理します。

double[] array = new double[list.size()];
for(int i = 0; i < list.size(); i++) array[i] = list.get(i).doubleValue();
于 2013-04-02T19:57:31.727 に答える