Sobes.tech
Junior — Middle

Kdy dochází k inicializaci Stream při použití Stream API?

sobes.tech AI

Odpověď od AI

Inicializace Stream v jazyce Java nastává v okamžiku volání terminální operace. Do tohoto okamžiku jsou operace nad Streamem líné (lazy) a nevykonávají se.

To znamená, že když vytvoříte Stream a použijete mezilehlé operace (například filter(), map()), pouze tvoří řetězec zpracování, ale nezačínají výpočty.

Příklad:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("a"))
    .map(String::toUpperCase);
// Zde se nic neděje

List<String> result = stream.collect(Collectors.toList()); // Terminální operace
// Zde dochází ke zpracování prvků

Stream je tedy inicializován a začíná zpracovávat data až při volání terminální operace, například collect(), forEach(), reduce() atd.