Ho il seguente codice:Come raccogliere DoubleStream to List
Stream.of("1,2,3,4".split(",")).mapToDouble(Double::valueOf).collect(Collectors.toList());
voglio tornare List<Double>
.
Questo codice non viene compilato.
vedo errore:
Error:(57, 69) java: method collect in interface java.util.stream.DoubleStream cannot be applied to given types;
required: java.util.function.Supplier<R>,java.util.function.ObjDoubleConsumer<R>,java.util.function.BiConsumer<R,R>
found: java.util.stream.Collector<java.lang.Object,capture#1 of ?,java.util.List<java.lang.Object>>
reason: cannot infer type-variable(s) R
(actual and formal argument lists differ in length)
Come risolvere questo problema?
Perché si utilizza 'mapToDouble' è si vuole raccogliere in una lista subito dopo? Basta usare 'map'. Si desidera eseguire la conversione 'String -> Double -> double -> Double' mentre' String -> Double' è sufficiente. –
Che cosa è strano? Stai fornendo una funzione 'String -> Double', se vuoi raccoglierla in un' List', deve essere un 'Double'. –
Alexis C. Il flusso primitivo DoubleStream? – gstackoverflow