Sto provando a convertire un double[]
in float[]
utilizzando il calcolo lambda Java 8. Finora, ho appena creato un metodo giocattolo che dovrebbe essere rivisto. Cercando di trovare aiuto per convertire gli array primitivi. Per lo più, esiste un approccio per sbarazzarsi della conversione di guava perché la conversione in List e back è troppo pesante per i grandi array.Lambda su matrici primitive
import com.google.common.primitives.Floats;
public static float[] doubleToFloat(double[] vector) {
Float[] f = Arrays.stream(vector).<Float>mapToObj(x -> (float) x).toArray(Float[]::new);
return Floats.toArray(Arrays.asList(f));
}
È interessante notare che non esiste un flusso specializzato per 'Float' - esistono solo' IntStream', 'DoubleStream' e' LongStream' predefiniti. Per 'float', potrebbe essere il caso che devi fare tutto questo lavoro laborioso. – Makoto
Perché è necessario farlo utilizzando il calcolo lambda? –
@pbabcdefp per sperimentare. Cercando di trovare un modo pulito per sbarazzarsi del ciclo –