Junior — Middle
flatMap yöntemi nedir ve map'ten nasıl farklıdır açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
map yöntemi, koleksiyonlara uygulanır ve her öğeyi dönüştürerek, fonksiyonun sonuçlarına uygun yeni bir koleksiyon döndürür.
flatMap önce, her öğe için bir koleksiyon (veya akış) döndüren bir fonksiyon uygular ve sonra bu koleksiyonları tek bir akış veya liste halinde "düzleştirir".
Java'da akışlar ile örnek:
List<List<String>> list = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
// map, Stream<List<String>> döner
Stream<List<String>> mapped = list.stream()
.map(innerList -> innerList.stream().map(String::toUpperCase).collect(Collectors.toList()));
// flatMap, Stream<String> döner
Stream<String> flatMapped = list.stream()
.flatMap(innerList -> innerList.stream().map(String::toUpperCase));
// flatMapped, listeye toplanabilir
List<String> result = flatMapped.collect(Collectors.toList()); // ["A", "B", "C", "D"]
Bu nedenle, flatMap, fonksiyonun iç içe koleksiyonlar döndürdüğü durumlarda ve düz bir yapı elde edilmek istendiğinde kullanışlıdır.