Question

Comment puis-je faire?

Je n'ai ArrayList, avec des éléments de flotteur. (Arraylist <Float>)

(float[]) Floats_arraylist.toArray()

il ne fonctionne pas.

ne peut pas lancer de l'objet [] pour flotter []

Était-ce utile?

La solution

Boucle sur vous-même.

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

Le nullcheck est obligatoire pour éviter NullPointerException parce qu'un Float (un objet) peut être null alors qu'une float (primitive) ne peut pas être null du tout.

Dans le cas où vous êtes sur Java 8 déjà et il n'y a pas de problème pour se retrouver avec double[] au lieu de float[], pensez Stream#mapToDouble() (pas il n'y a pas de méthode que mapToFloat()).

List<Float> floatList = getItSomehow();
double[] doubleArray = floatList.stream()
    .mapToDouble(f -> f != null ? f : Float.NaN) // Or whatever default you want.
    .toArray();

Autres conseils

Vous pouvez utiliser Apache Commons ArrayUtils.toPrimitive() :

List<Float> list = new ArrayList<Float>();
float[] floatArray = ArrayUtils.toPrimitive(list.toArray(new Float[0]), 0.0F);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top