Sobes.tech
Junior — Middle

Kada įvyksta Stream inicijavimas naudojant Stream API?

sobes.tech AI

Atsakymas iš AI

„Java“ srauto inicializacija įvyksta tada, kai iškviečiama terminalo operacija. Iki to momento, operacijos su srautu yra tingios (lazy) ir nevykdomos.

Tai reiškia, kad sukūrus srautą ir taikant tarpinės operacijas (pvz., filter(), map()), jos tik sudaro apdorojimo grandinę, bet nepradeda skaičiavimų.

Pavyzdys:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("a"))
    .map(String::toUpperCase);
// Čia nieko nevyksta

List<String> result = stream.collect(Collectors.toList()); // Terminalo operacija
// Čia vyksta elementų apdorojimas

Taigi, srautas inicijuojamas ir pradeda apdoroti duomenis tik iškvietus terminalo operaciją, pvz., collect(), forEach(), reduce() ir kt.