Sobes.tech
Junior — Middle
111

Erklären Sie das Konzept der Methode flatMap in der Java Stream API und deren Unterschied zu map.

Unternehmen wurden gefragt
JSA Group

Antwort von AI

sobes.tech KI

Метод flatMap в Java Stream API используется для преобразования каждого элемента потока в другой поток, а затем объединяет ("сплющивает") все эти потоки в один единый поток. В отличие от map, который преобразует каждый элемент в один элемент другого типа, flatMap преобразует каждый элемент в поток элементов и объединяет их.

Пример:

List<String> words = Arrays.asList("hello", "world");

// map: преобразует каждое слово в массив символов, но результат - поток массивов
Stream<char[]> mapped = words.stream().map(word -> word.toCharArray());

// flatMap: преобразует каждое слово в поток символов и объединяет их в один поток символов
Stream<Character> flatMapped = words.stream()
    .flatMap(word -> word.chars().mapToObj(c -> (char) c));

flatMapped.forEach(System.out::println);

Таким образом, flatMap полезен, когда из одного элемента нужно получить несколько элементов и работать с ними как с единым потоком.