Sobes.tech
Junior — Middle

Kada se dešava inicijalizacija Stream prilikom korišćenja Stream API?

sobes.tech АИ

Одговор од АИ

Inicijalizacija Stream u Javi dešava se u trenutku kada se pozove terminalna operacija. Do tog trenutka, operacije nad Stream-om su lenje (lazy) i ne izvršavaju se.

To znači, kada kreirate Stream i primenjujete međuprolazne operacije (npr. filter(), map()), one samo formiraju lanac obrade, ali ne pokreću izračunavanja.

Primer:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("a"))
    .map(String::toUpperCase);
// Ovde se ništa ne dešava

List<String> result = stream.collect(Collectors.toList()); // Terminalna operacija
// Ovde se vrši obrada elemenata

Dakle, Stream se inicijalizuje i počinje da obrađuje podatke tek kada se pozove terminalna operacija, kao što su collect(), forEach(), reduce() i druge.