Sobes.tech
Junior — Middle

flatMap metodu nədir və o, map metodundan necə fərqlənir, izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

map metodu kolleksiya üzərində tətbiq olunur və hər bir elementi çevrilərək, funksiyanın nəticələrinə uyğun yeni kolleksiya ilə geri qaytarılır.

flatMap əvvəlcə hər bir element üçün kolleksiya (və ya axın) qaytaran bir funksiya tətbiq edir və sonra bu kolleksiyaları tək bir ümumi axın və ya siyahıya "yastılaşdırır".

Java ilə axınlar nümunəsi:

List<List<String>> list = Arrays.asList(
    Arrays.asList("a", "b"),
    Arrays.asList("c", "d")
);

// map, Stream<List<String>> qaytarır
Stream<List<String>> mapped = list.stream()
    .map(innerList -> innerList.stream().map(String::toUpperCase).collect(Collectors.toList()));

// flatMap, Stream<String> qaytarır
Stream<String> flatMapped = list.stream()
    .flatMap(innerList -> innerList.stream().map(String::toUpperCase));

// flatMapped, siyahıya yığmaq olar
List<String> result = flatMapped.collect(Collectors.toList()); // ["A", "B", "C", "D"]

Bu səbəbdən, flatMap funksiyası iç-içə kolleksiyalar qaytaran hallarda və düz struktur əldə etmək istəndikdə əlverişlidir.