Immer return Liste von forEach in java 8
Ich bin versucht, einen stream für etwas, und ich glaube, ich habe ein konzeptionelles Missverständnis. Ich bin versucht, auf ein array, konvertieren Sie es in einen stream, und .forEach Element in dem array möchte ich eine Funktion auszuführen, und gibt eine Liste der Ergebnisse, dass die Funktion aus der foreach.
Im wesentlichen:
Thing[] functionedThings = Array.stream(things).forEach(thing -> functionWithReturn(thing))
Ist das möglich? Bin ich mit den falschen stream-Funktion?
- Bitte, studieren Sie die
Stream
API. Hat es mehr Methoden als nurforEach
. - manchmal Blicke ich zurück auf Fragen, die ich schrieb, und ich kann nicht helfen, aber facepalm
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was du suchst heißt
map
Betrieb:Diese Methode wird verwendet, um Karte ein Objekt zu einem anderen Objekt; unter Angabe der Javadoc, das sagt es besser:
Hinweis, dass der Stream umgewandelt wird zurück in ein array mit der
toArray(generator)
Methode; der generator verwendet wird, ist eine Funktion (eigentlich ist es eine Methode, die Referenz hier) wieder ein neues Ding-array.Müssen Sie anzeigen nicht forEach
Oder
toArray()
auf den stream direkt, wenn Sie möchten, ein array, wie Holger sagte in den Kommentaren.Collectors.toArray()
. Stattdessen werden dieStream
selbst bietet einetoArray()
Methode.