1271. Какие отличия между методами map и flatMap? В Java методы map() и flatMap() используются в контексте Stream API для обработки коллекций. Основное различие между двумя методами заключается в следующем: Другими словами, map() преобразует каждый элемент потока в другой элемент, а flatMap() преобразует каждый элемент в поток элементов, а затем объединяет все потоки в один поток. Вот пример использования map() для преобразования списка строк в список их длин: List<String> strings = Arrays.asList("foo", "bar", "baz");
List<Integer> lengths = strings.stream().map(String::length).collect(Collectors.toList()); А вот пример использования flatMap() для извлечения отдельных слов из списка предложений: List<String> sentences = Arrays.asList("hello world", "foo bar", "baz qux");
List<String> words = sentences.stream().flatMap(s -> Stream.of(s.split(" "))).distinct().collect(Collectors.toList()); В этом примере flatMap() используется для разделения каждого предложения на поток слов, которые з