Sobes.tech
Junior — Middle

Stream API'da ma'lumot oqimlari bilan ishlashda 'terminal bo'lmagan operatsiya' termini nima ekanligini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Java Stream API-da operatsiyalar terminal va terminal olmayan (oraliq) bo‘linadi.

Terminal bo‘lmagan operatsiya — bu yangi oqim (Stream) qaytaradigan va ma'lumotlarni ishlashni darhol boshlamaydigan operatsiya. U transformatsiyalar zanjirini qurish uchun xizmat qiladi, masalan, filtrlash, xaritalash, saralash.

Terminal bo‘lmagan operatsiyalarga misollar:

  • filter()
  • map()
  • sorted()
  • distinct()

Ushbu operatsiyalar kechiktirilgan: ular terminal operatsiya chaqirilmaguncha, masalan, forEach(), collect(), count() bajarilmaydi.

Misol:

List<String> list = Arrays.asList("a", "bb", "ccc");

list.stream()
    .filter(s -> s.length() > 1) // terminal bo‘lmagan
    .map(String::toUpperCase)    // terminal bo‘lmagan
    .forEach(System.out::println); // terminal

Shu tarzda, terminal bo‘lmagan operatsiyalar transformatsiya zanjirini qurishga imkon beradi, va terminal operatsiya bajarilishini boshlaydi.