«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > В чем ключевая разница между Stream.map() и Stream.flatMap() в Java 8?

В чем ключевая разница между Stream.map() и Stream.flatMap() в Java 8?

Опубликовано 15 ноября 2024 г.
Просматривать:575

What\'s the Key Difference Between Stream.map() and Stream.flatMap() in Java 8?

Stream.map() и Stream.flatMap() в Java 8

Stream.map() и Stream.flatMap() — это два часто используемых метода в Java 8, которые выполняют аналогичные преобразования в потоке значений. Однако у них есть фундаментальное различие в том, как они обрабатывают и возвращают значения.

Stream.map()

  • Принимает функцию супер Т, ? расширяет R> в качестве аргумента, где T — тип ввода, а R — тип вывода.
  • Применяет заданную функцию к каждому элементу входного потока.
  • Создает новый поток, содержащий преобразованные значения, каждое из которых соответствует входному значению.
  • Например, для заданного потока целых чисел можно использовать карту для преобразования каждого целого числа в его квадрат.

Поток .flatMap()

  • Принимает функцию супер Т, ? расширяет поток расширяет R>> в качестве аргумента, который возвращает поток для каждого входного значения.
  • Вызывает функцию для каждого элемента входного потока.
  • Полученные потоки объединяются в один поток, создание «сглаженного» вывода.
  • Например, при наличии потока строк FlatMap можно использовать для извлечения всех отдельных символов в один поток символов.

Ключевое отличие

Основное различие между Map() и FlatMap() заключается в том, как они обрабатывают результаты функции преобразования:

  • map() создает одно преобразованное значение для каждого входного значения.
  • flatMap() создает ноль или более преобразованных значений для каждого входного значения.

Это различие влияет на форму и содержимое результирующего потока. FlatMap() позволяет создавать вложенные потоки, тогда как map() сохраняет ту же размерность, что и исходный поток.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3