本文介绍了Java 转换 Arraylist<Float>漂浮[]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我该怎么做?
我有一个带有浮点元素的数组列表.(Arraylist )
I have an arraylist, with float elements. (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
>(一个原语)根本不能是null
.
The nullcheck is mandatory to avoid NullPointerException
because a Float
(an object) can be null
while a float
(a primitive) cannot be null
at all.
如果您已经在使用 Java 8 并且使用 double[]
而不是 float[]
结束也没有问题,请考虑 Stream#mapToDouble()
(不,没有像 mapToFloat()
这样的方法).
In case you're on Java 8 already and it's no problem to end up with double[]
instead of float[]
, consider Stream#mapToDouble()
(no there's no such method as mapToFloat()
).
List<Float> floatList = getItSomehow();
double[] doubleArray = floatList.stream()
.mapToDouble(f -> f != null ? f : Float.NaN) // Or whatever default you want.
.toArray();
这篇关于Java 转换 Arraylist<Float>漂浮[]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!