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.