Ich habe den folgenden Code:Wie Doppelstrom sammeln zur Liste
Stream.of("1,2,3,4".split(",")).mapToDouble(Double::valueOf).collect(Collectors.toList());
Ich möchte List<Double>
zurückzukehren.
Dieser Code wird nicht kompiliert.
Ich sehe Fehler:
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)
Wie dieses Problem zu beheben?
Warum Sie 'mapToDouble' wird man es in eine Liste direkt nach sammeln möchten? Verwenden Sie einfach "map". Sie wollen die Umwandlung 'String -> Double -> double -> Double' machen, während' String -> Double' ausreichend ist. –
Was ist seltsam? Sie stellen eine Funktion 'String -> Double' zur Verfügung, wenn Sie sie in eine' List' sammeln wollen, muss es ein 'Double' sein. –
Alexis C. Ist DoubleStream primitiver Stream? – gstackoverflow