MAP va flatMap o'rtasidagi farq nima?
MAP va flatMap o'rtasidagi farq nima?

Video: MAP va flatMap o'rtasidagi farq nima?

Video: MAP va flatMap o'rtasidagi farq nima?
Video: map vs flatmap java 8 2024, Noyabr
Anonim

Ikkalasi ham xarita () va flatMap () a oladi xaritalash aStream ning har bir elementiga qo'llaniladigan va Streamni qaytaradigan funksiya. Faqat farq bu xaritalash funktsiyasi ichida hodisasi flatMap () yangi qiymatlar oqimini hosil qiladi, aksincha xarita () har bir kirish elementi uchun bitta qiymat hosil qiladi.

Bundan tashqari, bilingki, flatMap nimadan foydalanishni?

flatMap () V/s map(): U oqimni tekislamaydi. Lekin flatMap () bu xarita va tekis amalning kombinatsiyasi, ya'ni elementlarga funksiyani qo'llaydi va ularni tekislaydi. 2) map() bu ishlatilgan faqat o'zgartirish uchun, lekin flatMap () hisoblanadi ishlatilgan ham transformatsiya, ham tekislash uchun.

Xuddi shunday, tekis xarita nima? tekis - xarita . Xarita to'plam ustidagi funksiya va natijani bir darajaga tekislang. Buni xohlash odatiy holdir xarita ro'yxatdagi bir nechta qiymatlarni qaytaradigan kirish ro'yxatidagi funktsiya, lekin siz kirishning xuddi shunday tarzda joylashtirilishini xohlamaysiz. yoqut… ["ikki qush", "uch yashil no'xat"].

Bundan tashqari, flatMap oqimi nima?

Foydalanishni o'rganing Stream flatMap () tekislash uchun ishlatiladigan usul a oqim to'plamlardan a oqim barcha to'plamlardan birlashtirilgan elementlar. The flatMap () operatsiya elementiga birdan ko'pga o'zgartirishni qo'llash effektiga ega oqim , so'ngra hosil bo'lgan elementlarni yangisiga tekislang oqim.

To'plam va oqim o'rtasidagi farq nima?

A oqim ma'lumotlarni saqlamaydi. Operatsiya a oqim o'z manbasini o'zgartirmaydi, balki shunchaki asos yaratadi. To'plamlar cheklangan o'lchamga ega, lekin oqimlar bunday qilma. Iterator kabi, yangi oqim bir xil elementlarni qayta ko'rib chiqish uchun yaratilishi kerak ning manba.

Tavsiya: