Sobes.tech
Junior — Middle

Маалымат агымы акыркы операцияны баштабай ишке ашырылабы?

sobes.tech AI

AIден жооп

Javaда маалымат агымы (stream) акыркы операцияны (terminal operation) чакырбастан ишке ашырылбайт. Javaда агымдар сараң: аралык операциялар (мисалы, map, filter) гана өзгөртүүлөрдү сүрөттөйт, бирок дароо ишке ашырылбайт.

Мисал:

Stream<Integer> stream = Stream.of(1, 2, 3, 4)
    .filter(x -> x % 2 == 0)
    .map(x -> x * x);
// Бул жерде эч нерсе болбойт, анткени акыркы операция жок

List<Integer> result = stream.collect(Collectors.toList()); // Акыркы операция, эсептөөлөрдү баштайт

Эгер акыркы операция (collect, forEach, reduce жана башка) чакырылбаса, агым иштетилбейт жана эсептөөлөр жүргүзүлбөйт.