Java 将 Arraylist<Float> 转换为 float\[\]

新手上路,请多包涵

我该怎么做?

我有一个 arraylist,带有 float 元素。 (Arraylist <Float>)

 (float[]) Floats_arraylist.toArray()

它不工作。

不能从 Object[] 转换为 float[]

原文由 lacas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.4k
2 个回答

自己循环。

 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.
}

The nullcheck is mandatory to avoid NullPointerException because a Float (an object) can be null while a float (a primitive) cannot be 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();

原文由 BalusC 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 Apache Commons ArrayUtils.toPrimitive()

 List<Float> list = new ArrayList<Float>();
float[] floatArray = ArrayUtils.toPrimitive(list.toArray(new Float[0]), 0.0F);

原文由 dogbane 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题