Sobes.tech
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.