Проверяет знание различий между операциями преобразования в Stream API.
map: Преобразует каждый элемент стрима в другой элемент (1:1).
flatMap: Преобразует каждый элемент в стрим элементов и объединяет их в один стрим (1:N).
map (1:1)Применяет функцию к каждому элементу.
Пример:
List<String> names = List.of("Alice", "Bob");
List<Integer> nameLengths = names.stream()
.map(String::length) // Преобразует String → Integer
.toList(); // [5, 3]flatMap (1:N)Разбивает элементы на подстримы и объединяет их.
Пример:
List<List<String>> nestedLists = List.of(
List.of("A", "B"),
List.of("C", "D")
);
List<String> flatList = nestedLists.stream()
.flatMap(List::stream) // "Разворачивает" List<String> → String
.toList(); // ["A", "B", "C", "D"]Вывод:
Используйте map для простых преобразований.
Используйте flatMap для работы с вложенными структурами.