本文介绍了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>漂浮[]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 23:03