Sobes.tech
Junior — Middle

Stream API-da yakuniy operatsiya chaqirilmasa, qanday xulq ko'rsatiladi?

sobes.tech AI

AIdan javob

Java Stream API'da operatsiyalar o'rta va yakuniy bo'laklarga bo'linadi. O'rta operatsiyalar (masalan, filter, map) kechiktirilgan va yakuniy operatsiya (masalan, collect, forEach) chaqirilmaguncha bajarilmaydi.

Agar yakuniy operatsiya chaqirilmasa, oqim ishlov berilmaydi va hech qanday hisoblashlar amalga oshmaydi. Bu shuni anglatadiki, o'rta operatsiyalar zanjiri faqat oqimning tavsifini yaratadi, lekin uni bajarishmaydi.

Misol:

Stream.of(1, 2, 3, 4)
    .filter(n -> n % 2 == 0)
    .map(n -> n * 2);
// Hech qanday element ishlov berilmaydi, chunki yakuniy operatsiya yo'q

Ishlov berishni boshlash uchun, yakuniy operatsiya chaqirilishi kerak:

List<Integer> result = Stream.of(1, 2, 3, 4)
    .filter(n -> n % 2 == 0)
    .map(n -> n * 2)
    .collect(Collectors.toList());

Yakuniy operatsiya bo'lmasa, oqim bajarilmaydi.