Straumējiet flatMap() Java ar piemēriem
Straumēt flatMap (funkciju kartētājs) atgriež straumi, kas sastāv no katra šīs straumes elementa aizstāšanas rezultātiem ar kartētas straumes saturu, kas iegūts, katram elementam piemērojot nodrošināto kartēšanas funkciju. Stream flatMap (funkciju kartētājs) ir starpposma darbība . Šīs darbības vienmēr ir slinkas. Starpposma darbības tiek izsauktas Stream instancē, un pēc apstrādes pabeigšanas tās kā izvadi piešķir straumes gadījumu.
Piezīme : Katra kartētā straume tiek aizvērta pēc tam, kad tās saturs ir ievietots šajā straumē. Ja kartētās straumes vērtība ir nulle, tā vietā tiek izmantota tukša straume.
flatMap() V/s karte () :
1) karte () uzņem straumi un pārveido to par citu straumi. Tas piemēro funkciju katram straumes elementam un saglabā atgriešanas vērtību jaunajā straumē. Tas neizlīdzina straumi. Bet flatMap () ir kartes un plakanas darbības kombinācija, t.i., tā piemēro funkciju elementiem, kā arī tos saplacina.
2) karte () tiek izmantots tikai transformācijai, bet flatMap() tiek izmantots gan transformācijai, gan saplacināšanai.
Sintakse :
< R>Straume < R>flatMap (Funkcija < ? super T, ? extends Stream < ? extends R>> kartētājs), kur R ir jaunās straumes elementa veids. Straume ir saskarne, un T ir straumes elementu veids. kartētājs ir bezstāvokļa funkcija, kas tiek lietota katram elementam, un funkcija atgriež jauno straumi.>>1. piemērs: flatMap() funkcija ar paredzēto kartēšanas funkciju.
// 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 ->Stream.of(num)).>> |