Junior — Middle
flatMap usuli nima va u map usulidan qanday farq qiladi, tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
map usuli kolleksiyaga qoʻllaniladi va har bir elementni oʻzgartiradi, funksiyaning natijalariga mos keladigan yangi kolleksiya bilan qaytaradi.
flatMap avval har bir element uchun kolleksiya (yoki oqim) qaytaradigan funksiyani qoʻllaydi va keyin bu kolleksiyalarni bitta umumiy oqim yoki roʻyxatga "yassi" qiladi.
Java bilan oqimlar misoli:
List<List<String>> list = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
// map, Stream<List<String>> qaytaradi
Stream<List<String>> mapped = list.stream()
.map(innerList -> innerList.stream().map(String::toUpperCase).collect(Collectors.toList()));
// flatMap, Stream<String> qaytaradi
Stream<String> flatMapped = list.stream()
.flatMap(innerList -> innerList.stream().map(String::toUpperCase));
// flatMapped, roʻyxatga yigʻilishi mumkin
List<String> result = flatMapped.collect(Collectors.toList()); // ["A", "B", "C", "D"]
Shu sababli, flatMap funksiyasi ichma-ich kolleksiyalarni qaytaradigan hollarda va silliq tuzilma kerak boʻlganda qulaydir.