Sobes.tech
Junior — Middle

Kedy dochádza k inicializácii Stream pri použití Stream API?

sobes.tech AI

Odpoveď od AI

Inicializácia Stream v Jave nastáva v okamihu, keď sa zavolá terminálna operácia. Do tohto momentu sú operácie nad Streamom lenivé (lazy) a nevykonávajú sa.

To znamená, že keď vytvoríte Stream a použijete medziľahlé operácie (napríklad filter(), map()), len tvoria reťazec spracovania, ale nezačínajú výpočty.

Príklad:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("a"))
    .map(String::toUpperCase);
// Tu sa nič nedeje

List<String> result = stream.collect(Collectors.toList()); // Terminálna operácia
// Tu prebieha spracovanie prvkov

Stream je teda inicializovaný a začína spracovávať dáta až pri volaní terminálnej operácie, ako je collect(), forEach(), reduce() a pod.