Junior — Middle
78
Care este diferența dintre operațiile flat și flatMap atunci când lucrați cu fluxuri de date sau colecții?
Companiile au fost întrebate
Răspuns de la AI
sobes.tech AI
Операции flat и flatMap часто используются при работе с коллекциями или потоками данных для упрощения вложенных структур.
-
flat— преобразует коллекцию коллекций в плоскую коллекцию, объединяя все вложенные элементы в один уровень. Например, изList<List<T>>получаетсяList<T>. -
flatMap— сначала применяет функцию к каждому элементу коллекции, которая возвращает коллекцию, а затем объединяет все полученные коллекции в одну плоскую.
Пример на Java с потоками:
List<List<String>> listOfLists = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
// flat
List<String> flatList = listOfLists.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
// flatList: ["a", "b", "c", "d"]
// flatMap с преобразованием
List<String> flatMapped = listOfLists.stream()
.flatMap(list -> list.stream().map(String::toUpperCase))
.collect(Collectors.toList());
// flatMapped: ["A", "B", "C", "D"]
Таким образом, flatMap сочетает в себе операцию отображения (map) и последующего объединения (flat).