Junior — Middle
Java Stream API-də map və flatMap metodları arasındakı fərqlər və onların istifadə xüsusiyyətləri nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Java Stream API-də map və flatMap metodları axım elementlərini çevirmək üçün istifadə olunur, lakin fərqli şəkildə işləyirlər:
-
maphər bir elementi başqa elementə çevirən funksiya qəbul edir. Nəticədə, eyni sayda elementə malik, lakin başqa növ və ya görünüşdə olan axın əldə edilir. -
flatMaphər bir elementi elementlər axımına (Stream) çevirən funksiya qəbul edir və sonra bu axımları ("yassi") ümumi bir axımda birləşdirir. Bu, bir elementdən çox element əldə etmək lazım olduqda faydalıdır.
Nümunə:
List<String> words = Arrays.asList("hello", "world");
// map: hər sözü onun uzunluğuna çeviririk
List<Integer> lengths = words.stream()
.map(String::length)
.collect(Collectors.toList()); // [5, 5]
// flatMap: hər sözü hərflərə bölür və bütün hərfləri bir axımda birləşdirir
List<String> letters = words.stream()
.flatMap(word -> Arrays.stream(word.split("")))
.collect(Collectors.toList()); // [h, e, l, l, o, w, o, r, l, d]
İstifadə xüsusiyyətləri:
mapsadə element-ə-element çevirmələr üçün uyğundur.flatMaplazım olur, bir elementdən çox element əldə etmək və iç-içə quruluşları "yassi" etmək istəndikdə.