簡體   English   中英

Java轉換Arraylist <Float> 漂浮[]

[英]Java convert Arraylist<Float> to float[]

我該怎么做?

我有一個arraylist,帶有float元素。 (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必須執行nullcheck,因為Float (對象)可以為nullfloat (原語)則不能為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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM