Рубрики
Без рубрики

Пример функционального программирования Java 8 с методами Stream, map, filter и collect

Вы можете написать мощный функциональный код на Java, используя Stream API и лямбда-выражение. В этом примере вы узнаете, как использовать методы map, filter и collect для написания чистого функционального кода на Java.. С тегами java, программирование, кодирование, разработка.

Раскрытие информации: Этот пост содержит партнерские ссылки; Я могу получить компенсацию, если вы приобретете товары или услуги по различным ссылкам, приведенным в этой статье.

Привет, ребята! Если вы изучаете функциональное программирование на Java и хотите научиться использовать методы map, filter и collect в Java, то вы обратились по адресу.

В прошлом я делился лучшими курсами функционального программирования Java , а также некоторыми Java-книги по лямбде и потоку , и сегодня я собираюсь научить вас, как вы можете использовать методы map, filter и collect() для создания конвейера потока для преобразования ваших данных из одной формы в другую.

Несмотря на то, что я ранее писал в блогах как о map() , так и о filter() , я снова пишу этот пост, чтобы расширить концепцию на языке непрофессионала, чтобы обеспечить лучшее понимание для моих читателей и коллег-разработчиков Java.

Функция map() – это метод в классе Stream, который представляет концепцию функционального программирования. Простыми словами, map() используется для преобразования одного объекта в другой путем применения функции .

Именно по этой причине Stream.map(Function mapper) принимает функцию в качестве аргумента. Например, используя функцию map()/|, вы можете преобразовать список строк в список целых чисел, применив метод Integer.valueOf() к каждой строке во входном списке.

Все, что вам нужно, – это функция сопоставления для преобразования одного объекта в другой. Затем функция map() выполнит преобразование за вас. Это также промежуточная потоковая операция, которая означает, что вы можете вызывать другие потоковые методы, такие как filter, или собирать данные для создания цепочки преобразований.

Теперь, переходя к методу filter , как следует из его названия, он фильтрует элементы на основе условия ты дал это. Например, если ваш список содержит числа, и вам нужны только числа, вы можете использовать метод фильтра, чтобы выбрать только число, которое полностью делится на два.

Метод фильтрации по существу выбирает элементы на основе предоставленного вами условия. Это причина того, что фильтр ( Предикат условие) принимает объект предиката, который предоставляет функцию, применяемую к условию. Если условие имеет значение true, то объект выбирается. В противном случае он будет проигнорирован.

Подобно map, фильтр также является промежуточной операцией, что означает, что вы можете вызывать другие методы потока после вызова фильтра.

Метод filter() также является ленивым , что означает, что он не будет вычислен до тех пор, пока вы не вызовете метод сокращения, например collect, и он остановится, как только достигнет цели.

Если вы не знакомы с поведением потока, я предлагаю вам ознакомиться с Изучайте функциональное программирование на Java с помощью лямбд и потоков от Ранга Рао Карнама на Udemy, в котором подробно объясняются основы потоков.

1. Как написать функциональный код на Java с использованием Lambda и Stream

Вам нужен хороший пример, чтобы понять любую новую концепцию. Вот почему вы читаете эту статью. С тех пор, как Строка и Целое число является наиболее распространенным типом данных в Java, я выбрал пример, который одновременно прост и интересен.

У меня есть список строк: чисел, таких как {"1", "2", "3", "4", "5", "6"} . Я хочу обработать этот список, и мне нужен другой Список целых чисел только с четными числами .

Чтобы найти четные числа, мне сначала нужно преобразовать список строк в список целых чисел. Для этого я могу использовать метод map() java.util. Потоковый класс. Но перед этим нам нужен Stream как map(), как определено в классе java.util.stream.

Это совсем не сложно, так как вы можете получить поток из любой коллекции, например List или Set , вызвав метод stream(), который определен в java.util. Коллекция интерфейс.

Метод map(Function mapper) принимает Функцию , технически говоря, объект java.util.function. Функциональный интерфейс. Затем эта функция применяется к каждому элементу потока, чтобы преобразовать его в нужный вам тип.

Поскольку нам нужно преобразовать строку в целое число, мы можем передать либо Integer.parseInt() или Integer.valueOf() метод для функции map() .

Я выбрал метод valueOf() по причинам, которые я упомянул в статье parseInt vs valueOf, то есть по производительности и кэшированию. Кстати, дело не только во мне. Даже Джошуа Блох посоветовал предпочесть статические фабричные методы, такие как valueOf() , конструктору в Эффективная Java .

Затем map() вернет поток целых чисел, который содержит как четные, так и нечетные числа. Чтобы выбрать только четные числа, мы можем использовать метод filter().

Для преобразования объекта в логическое значение требуется предикат объект , который технически является функцией . Мы передаем объект, и он вернет значение true или false. Затем фильтр использует эту информацию для включения объекта в поток результатов.

Итак, чтобы включить только четные числа, мы вызываем filter( number ->) , что означает, что каждое число будет разделено на два, и если остатка нет, то оно будет выбрано. Это та же логика, которую мы использовали при решении задач кодирования, чтобы проверить, является ли данное число четным или нечетным в Java.

Мы почти закончили. Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать.

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.ToList()) Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

2. Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типов, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типов в lambda exJava 8 Map + Filter + Collect Example pression, || Полный мастер-класс Java || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || .

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** , который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, The Complete Вы можете запустить эту программу в IDE или из командной строки, которую вы также можете поэкспериментируйте с использованием большего количества функций map() или большего количества вызовов filter() , чтобы сделать композицию более длинной и сложной. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass – хорошее место для начала. укажите эту информацию , сохранив результат в List

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, || The Complete, Вы можете запустить эту программу в || IDE || или из командной строки в/The наиболее важным кодом в этом примере являются следующие четыре строки кода потоковой обработки: || , я имею в виду, 2, 4 и 6. Вы можете видеть, что исходный список содержит числа от 1 до 6, а отфильтрованный список содержит только || четные числа | , || карта || или любая другая коллекция. Вы даже можете поиграть с методом || collect() || для сбора результата в || list || , || set Вы также можете поэкспериментировать с использованием большего количества функций || map() || или большего количества вызовов || filter() ||, чтобы сделать композицию длиннее и более утонченный. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || .

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, || The Complete, Вы можете запустить эту программу в || IDE || или из командной строки |This код начинается с карты, затем фильтра и, наконец, сбора. Наиболее важным кодом в этом примере являются следующие четыре строки кода потоковой обработки: || , я имею в виду, 2, 4 и 6. Вы можете видеть, что исходный список содержит числа от 1 до 6, а отфильтрованный список содержит только || четные числа | , || карту || или любую другую коллекцию. Вы даже можете поиграть с методом || collect() || для сбора результата в || list || , || set Вы также можете поэкспериментировать с использованием большего количества функций || map() || или большего количества вызовов || filter() ||, чтобы сделать композицию длиннее и более утонченный. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || . Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типов, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типов в lambda exJava 8 Map + Filter + Collect Example pression, || The Complete, Вы можете запустить эту программу в || IDE || или из командной строки, и | Вы возможно, вам интересно, будет ли порядок иметь значение или нет. Этот код начинается с карты, затем фильтра и, наконец, сбора. Наиболее важным кодом в этом примере являются следующие четыре строки кода потоковой обработки: || , я имею в виду, 2, 4 и 6. Вы можете видеть, что исходный список содержит числа от 1 до 6, а отфильтрованный список содержит только || четные числа | , || карту || или любую другую коллекцию. Вы даже можете поиграть с методом || collect() || для сбора результата в || list || , || set Вы также можете поэкспериментировать с использованием большего количества функций || map() || или большего количества вызовов || filter() ||, чтобы сделать композицию длиннее и более утонченный. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || . Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, || The Complete, Вы можете запустить эту программу в || IDE || или из командной строки в |Well, это так. Возможно, вам интересно, будет ли порядок иметь значение или нет. Этот код начинается с карты, затем фильтра и, наконец, сбора. Наиболее важным кодом в этом примере являются следующие четыре строки кода потоковой обработки: || , я имею в виду, 2, 4 и 6. Вы можете видеть, что исходный список содержит числа от 1 до 6, а отфильтрованный список содержит только || четные числа | , || карту || или любую другую коллекцию. Вы даже можете поиграть с методом || collect() || для сбора результата в || list || , || set Вы также можете поэкспериментировать с использованием большего количества функций || map() || или большего количества вызовов || filter() ||, чтобы сделать композицию длиннее и более утонченный. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || .

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** , который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, The Complete, Вы можете запустить эту программу в IDE или из командной строки | Поскольку для нашего условия фильтрации требуется переменная int, которую нам сначала нужно преобразовать

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** , который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, The Complete, Вы можете запустить эту программу в

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** , который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression,

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, || The Complete Вы можете запустить эту программу в || IDE || или из командной строки | Спасибо за то, что прочитал эту статью до сих пор. ( || пример || ) 10 примеров опций в Java 8? Как преобразовать список в карту в Java 8 ( || решение || ) 15 Вопросов для интервью по потоку Java и функциональному программированию ( || список || ) ( || пример || ) Как отсортировать карту по ключам в Java 8? 20 Примеров даты и времени в Java 8 ( || учебное пособие || ) ( || ответ || ) Разница между абстрактным классом и интерфейсом в Java 8? Как объединить строку в Java 8 ( || пример || ) ( || пример || ) Какой метод используется по умолчанию в Java 8? 5 Книг для изучения Java 8 с нуля ( || книги || ) ( || учебное пособие || ) Как отформатировать/проанализировать дату с помощью LocalDateTime в Java 8? 10 курсов для углубленного изучения Java ( || courses || ) Как использовать класс Stream в Java 8 ( || учебное пособие || ) Разница между map() и flatMap в Java 8 ( || ответ || ) ( || пример || ) Как отсортировать данные по значениям в Java 8? Дорожная карта разработчика Java на 2020 год ( || см. || ) Если вам интересно узнать больше о новых функциях Java 8, вот мои более ранние статьи, посвященные некоторым важным концепциям Java 8: вам могут понравиться руководства по Java Other || Учебный семинар по рефакторингу потоков Java 8 и лямбдам Self- Java SE 8 для программистов (книга) || Из коллекций к потокам в Java 8 с использованием лямбда-выражений || Полный мастер-класс Java || Дальнейшее обучение || Мы также узнали, как составлять операции в потоке, чтобы писать код, который является одновременно ясным и кратким. Мы видели интересный пример того, как мы можем использовать карту для преобразования объекта в другой и как использовать фильтр для выбора объекта на основе условий. Это все о || как использовать map и filter в Java 8 || . Если бы нам нужно было фильтровать по строке, например, выбрать всю строку, которая имеет || длину > 2 || , то мы бы вызвали filter перед map. Мы передали это условие методу filter. Как только у нас есть поток целых чисел, мы можем применить математику, чтобы найти четные числа. Вот почему мы сначала вызвали функцию || map() ||. Поскольку для нашего условия фильтрации требуется переменная int, нам сначала нужно преобразовать || Поток строки || в || Поток целого числа || . Что ж, так оно и есть. Возможно, вам интересно, будет ли порядок иметь значение или нет. Этот код начинается с карты, затем фильтра и, наконец, сбора. Наиболее важным кодом в этом примере являются следующие четыре строки кода потоковой обработки: || , я имею в виду, 2, 4 и 6. Вы можете видеть, что исходный список содержит числа от 1 до 6, а отфильтрованный список содержит только || четные числа | , || карта || или любая другая коллекция. Вы даже можете поиграть с методом || collect() || для сбора результата в || list || , || set Вы также можете поэкспериментировать с использованием большего количества функций || map() || или большего количества вызовов || filter() ||, чтобы сделать композицию длиннее и более утонченный. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || . Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, || The Complete, Вы можете запустить эту программу в || IDE || или из командной строки |If если вы считаете этот учебник по Java полезным, пожалуйста, поделитесь им со своими друзьями и коллегами. Спасибо, что прочитали эту статью до сих пор. ( || пример || ) 10 примеров опций в Java 8? Как преобразовать список в карту в Java 8 ( || решение || ) 15 Вопросов для интервью по потоку Java и функциональному программированию ( || список || ) ( || пример || ) Как отсортировать карту по ключам в Java 8? 20 Примеров даты и времени в Java 8 ( || учебное пособие || ) ( || ответ || ) Разница между абстрактным классом и интерфейсом в Java 8? Как объединить строку в Java 8 ( || пример || ) ( || пример || ) Какой метод используется по умолчанию в Java 8? 5 Книг для изучения Java 8 с нуля ( || книги || ) ( || учебное пособие || ) Как отформатировать/проанализировать дату с помощью LocalDateTime в Java 8? 10 Курсов для углубленного изучения Java ( || курсы/| ) Как использовать класс Stream в Java 8 ( || учебное пособие || ) Разница между map() и flatMap в Java 8 ( || ответ || ) ( || пример || ) Как отсортировать данные по значениям в Java 8? Дорожная карта разработчика Java на 2020 год ( || см. || ) Если вам интересно узнать больше о новых функциях Java 8, вот мои более ранние статьи, посвященные некоторым важным концепциям Java 8: вам могут понравиться руководства по Java Other || Учебный семинар по рефакторингу потоков Java 8 и лямбдам Self- Java SE 8 для программистов (книга) || Из коллекций к потокам в Java 8 с использованием лямбда-выражений || Полный мастер-класс Java || Дальнейшее обучение || Мы также узнали, как составлять операции в потоке, чтобы писать код, который является одновременно ясным и кратким. Мы видели интересный пример того, как мы можем использовать карту для преобразования объекта в другой и как использовать фильтр для выбора объекта на основе условий. Это все о || как использовать map и filter в Java 8 || . Если бы нам нужно было фильтровать по строке, например, выбрать всю строку, которая имеет || длину > 2 || , то мы бы вызвали filter перед map. Мы передали это условие методу filter. Как только у нас есть поток целых чисел, мы можем применить математику, чтобы найти четные числа. Вот почему мы сначала вызвали функцию || map() ||. Поскольку для нашего условия фильтрации требуется переменная int, нам сначала нужно преобразовать || Поток строки || в || Поток целого числа || . Что ж, так оно и есть. Возможно, вам интересно, будет ли порядок иметь значение или нет. Этот код начинается с карты, затем фильтра и, наконец, сбора. Наиболее важным кодом в этом примере являются следующие четыре строки кода потоковой обработки: || , я имею в виду, 2, 4 и 6. Вы можете видеть, что исходный список содержит числа от 1 до 6, а отфильтрованный список содержит только || четные числа | , || карта || или любая другая коллекция. Вы даже можете поиграть с методом || collect() || для сбора результата в || list || , || set Вы также можете поэкспериментировать с использованием большего количества функций || map() || или большего количества вызовов || filter() ||, чтобы сделать композицию длиннее и более утонченный. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || . Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал || **collect(Collectors.тоЛист()) ** || , || который будет накапливать все четные числа в список и возвращать. Теперь вы, возможно, думаете: откуда он знает, что нужно возвращать список целых чисел? Что ж, нам нужно получить эту информацию с помощью вывода типа, потому что мы уже это сделали. Если вы хотите узнать больше о выводе типа в lambda exJava 8 Map + Filter + Collect Example pression, || The Complete, Вы можете запустить эту программу в || IDE || или из командной строки |If у вас есть какие-либо вопросы или отзывы, пожалуйста, оставьте сообщение. Если вы находите этот учебник по Java полезным, пожалуйста, поделитесь им со своими друзьями и коллегами. Спасибо, что прочитали эту статью до сих пор. ( || пример || ) 10 примеров опций в Java 8? Как преобразовать список в карту в Java 8 ( || решение || ) 15 Вопросов для интервью по потоку Java и функциональному программированию ( || список || ) ( || пример || ) Как отсортировать карту по ключам в Java 8? 20 Примеров даты и времени в Java 8 ( || учебное пособие || ) ( || ответ || ) Разница между абстрактным классом и интерфейсом в Java 8? Как объединить строку в Java 8 ( || пример || ) ( || пример || ) Какой метод используется по умолчанию в Java 8? 5 Книг для изучения Java 8 с нуля ( || книги || ) ( || учебное пособие || ) Как отформатировать/проанализировать дату с помощью LocalDateTime в Java 8? 10 Курсов для углубленного изучения Java ( || курсы/| ) Как использовать класс Stream в Java 8 ( || учебное пособие || ) Разница между map() и flatMap в Java 8 ( || ответ || ) ( || пример || ) Как отсортировать данные по значениям в Java 8? Дорожная карта разработчика Java на 2020 год ( || см. || ) Если вам интересно узнать больше о новых функциях Java 8, вот мои более ранние статьи, посвященные некоторым важным концепциям Java 8: вам могут понравиться руководства по Java Other || Учебный семинар по рефакторингу потоков Java 8 и лямбдам Self- Java SE 8 для программистов (книга) || Из коллекций к потокам в Java 8 с использованием лямбда-выражений || Полный мастер-класс Java || Дальнейшее обучение || Мы также узнали, как составлять операции в потоке, чтобы писать код, который является одновременно ясным и кратким. Мы видели интересный пример того, как мы можем использовать карту для преобразования объекта в другой и как использовать фильтр для выбора объекта на основе условий. Это все о || как использовать map и filter в Java 8 || . Если бы нам нужно было фильтровать по строке, например, выбрать всю строку, которая имеет || длину > 2 || , то мы бы вызвали filter перед map. Мы передали это условие методу filter. Как только у нас есть поток целых чисел, мы можем применить математику, чтобы найти четные числа. Вот почему мы сначала вызвали функцию || map() ||. Поскольку для нашего условия фильтрации требуется переменная int, нам сначала нужно преобразовать || Поток строки || в || Поток целого числа || . Что ж, так оно и есть. Возможно, вам интересно, будет ли порядок иметь значение или нет. Этот код начинается с карты, затем фильтра и, наконец, сбора. Наиболее важным кодом в этом примере являются следующие четыре строки кода потоковой обработки: || , я имею в виду, 2, 4 и 6. Вы можете видеть, что исходный список содержит числа от 1 до 6, а отфильтрованный список содержит только || четные числа | , || карта || или любая другая коллекция. Вы даже можете поиграть с методом || collect() || для сбора результата в || list || , || set Вы также можете поэкспериментировать с использованием большего количества функций || map() || или большего количества вызовов || filter() ||, чтобы сделать композицию длиннее и более утонченный. буду видеть результат. Вот программа Java для реализации всего, что я сказал в приведенном выше разделе. Java MasterClass || – хорошее место для начала. укажите эту информацию , сохранив результат в || List || .

Но пока у нас есть только поток четных целых чисел, а не список четных целых чисел, и именно поэтому нам нужно их использовать. Поскольку нам нужен список, я вызвал **collect(Collectors.тоЛист()) ** ,

Оригинал: “https://dev.to/javinpaul/java-8-functional-programming-example-with-stream-map-filter-and-collect-methods-5e8e”