どうすればそれができますか?
Float要素を含むarraylistがあります。 (Arraylist <Float>)
(float[]) Floats_arraylist.toArray()
動作していません。
object []からfloat []にキャストできません
自分でループします。
List<Float> floatList = getItSomehow();
float[] floatArray = new float[floatList.size()];
int i = 0;
for (Float f : floatList) {
floatArray[i++] = (f != null ? f : Float.NaN); // Or whatever default you want.
}
NullPointerException
(オブジェクト)はFloat
になり得ますが、null
(プリミティブ)はfloat
にはなれないため、nullcheckはnull
を避けるために必須です。
Java 8をすでに使用していて、double[]
の代わりにfloat[]
で終わることは問題ない場合、 Stream#mapToDouble()
を考慮してください。 (いいえ、mapToFloat()
のような方法はありません)。
List<Float> floatList = getItSomehow();
double[] doubleArray = floatList.stream()
.mapToDouble(f -> f != null ? f : Float.NaN) // Or whatever default you want.
.toArray();
Apache Commonsを使用できます ArrayUtils.toPrimitive()
:
List<Float> list = new ArrayList<Float>();
float[] floatArray = ArrayUtils.toPrimitive(list.toArray(new Float[0]), 0.0F);