Sobes.tech
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ə mapflatMap metodları axım elementlərini çevirmək üçün istifadə olunur, lakin fərqli şəkildə işləyirlər:

  • map hə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.

  • flatMap hə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:

  • map sadə element-ə-element çevirmələr üçün uyğundur.
  • flatMap lazım olur, bir elementdən çox element əldə etmək və iç-içə quruluşları "yassi" etmək istəndikdə.