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.