Junior — Middle
Java Stream API-da map va flatMap metodlari qanday farq qiladi va ularning foydalanish xususiyatlari qanday?
sobes.tech AI
AIdan javob
Java Stream API'da map va flatMap metodlari oqim elementlarini o'zgartirish uchun xizmat qiladi, ammo ular turli tarzda ishlaydi:
-
maphar bir elementni boshqa elementga o'zgartiradigan funktsiyani qabul qiladi. Natijada, shunchaki elementlar soni bir xil bo'lgan, ammo turli tur yoki ko'rinishga ega oqim hosil bo'ladi. -
flatMaphar bir elementni elementlar oqimiga (Stream) aylantiradigan funktsiyani qabul qiladi va keyin bu oqimlarni ("yassi") umumiy oqimga birlashtiradi. Bu, bir elementdan bir nechta element olish kerak bo'lsa, foydalidir.
Misol:
List<String> words = Arrays.asList("hello", "world");
// map: har bir so'zni uning uzunligiga o'zgartiramiz
List<Integer> lengths = words.stream()
.map(String::length)
.collect(Collectors.toList()); // [5, 5]
// flatMap: har bir so'zni harflarga bo'lib, barcha harflarni bir oqimga birlashtiramiz
List<String> letters = words.stream()
.flatMap(word -> Arrays.stream(word.split("")))
.collect(Collectors.toList()); // [h, e, l, l, o, w, o, r, l, d]
Foydalanish xususiyatlari:
mapoddiy elementlar uchun mos keladi.flatMapbir elementdan bir nechta element olish kerak bo'lsa va ichma-ich tuzilmalarni "yassi" qilish zarur bo'lsa, ishlatiladi.