Junior — Middle
Kad notiek Stream inicializācija, izmantojot Stream API?
sobes.tech AI
Atbilde no AI
Java Stream inicializējas tieši brīdī, kad tiek izsaukta terminālā operācija. Līdz tam brīdim operācijas ar Stream ir lazy (lazy) un netiek izpildītas.
Tas nozīmē, ka, izveidojot Stream un piemērojot starpposma operācijas (piemēram, filter(), map()), tās tikai veido apstrādes ķēdi, bet neuzsāk aprēķinus.
Piemērs:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Šeit nekas nenotiek
List<String> result = stream.collect(Collectors.toList()); // Terminālā operācija
// Šeit notiek elementu apstrāde
Tādējādi, Stream tiek inicializēts un sāk apstrādāt datus tikai tad, kad tiek izsaukta terminālā operācija, piemēram, collect(), forEach(), reduce() un tamlīdzīgi.