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.