Junior — Middle
Агар даъвати охирги амалро дар API Stream надошта бошад, чӣ рафтор нишон медиҳад?
sobes.tech AI
Ҷавоб аз AI
Дар API Stream-и Java амалҳо ба амалҳои миёна ва охирӣ тақсим мешаванд. Амалҳои миёна (масалан, filter, map) суст ва иҷро намешаванд, то он даме, ки амалҳои охирӣ (масалан, collect, forEach) даъват шаванд.
Агар амалҳои охирӣ даъват нашаванд, поток коркард намешавад ва ҳисобҳо сурат намегирад. Ин маънои онро дорад, ки занҷираи амалҳои миёна танҳо тавсифи потокро месозад, аммо онро иҷро намекунад.
Масалан:
Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2);
// Ҳеҷ як унсур коркард намешавад, зеро амалҳои охирӣ нест
Барои оғоз кардани коркард, бояд амалҳои охирӣ даъват шаванд:
List<Integer> result = Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2)
.collect(Collectors.toList());
Бе амалҳои охирӣ, поток иҷро намешавад.