Transmiteți în flux flatMap() în Java cu exemple
Transmite în flux flatMap (Mapper funcții) returnează un flux format din rezultatele înlocuirii fiecărui element al acestui flux cu conținutul unui flux mapat produs prin aplicarea funcției de mapare furnizată fiecărui element. Stream flatMap(Function mapper) este un operație intermediară . Aceste operațiuni sunt întotdeauna leneșe. Operațiunile intermediare sunt invocate pe o instanță Stream și, după ce își termină procesarea, dau o instanță Stream ca ieșire.
Notă : Fiecare flux mapat este închis după ce conținutul său a fost plasat în acest flux. Dacă un flux mapat este nul, se folosește în schimb un flux gol.
flatMap() V/s Hartă() :
1) Hartă() ia un flux și îl transformă într-un alt flux. Acesta aplică o funcție pe fiecare element al fluxului și stochează valoarea returnată în noul flux. Nu aplatizează fluxul. Dar flatMap() este combinația dintre o hartă și o operație plată, adică aplică o funcție elementelor și le aplatizează.
2) Hartă() este folosit doar pentru transformare, dar flatMap() este folosit atât pentru transformare, cât și pentru aplatizare.
Sintaxa:
< R>Curent < R>flatMap (Funcția < ? super T, ? extends Stream < ? extends R>> mapper) unde, R este tipul de element al noului flux. Fluxul este o interfață și T este tipul de elemente de flux. mapper este o funcție fără stat care este aplicată fiecărui element, iar funcția returnează noul flux.>>>Exemplul 1: Funcția flatMap() cu funcția de mapare furnizată.
// Java code for Stream flatMap> // (Function mapper) to get a stream by> // replacing the stream with a mapped> // stream by applying the provided mapping function.> import> java.util.*;> import> java.util.stream.Stream;> > class> GFG {> > > // Driver code> > public> static> void> main(String[] args)> > {> > > // Creating a List of Strings> > List list = Arrays.asList(> '5.6'> ,> '7.4'> ,> '4'> ,> > '1'> ,> '2.3'> );> > > // Using Stream flatMap(Function mapper)> > list.stream().flatMap(num ->Flux.de(num)).>>> |