Java Stream API
Разница между методами map и flatMap
• Метод
• Метод
Пример. У нас есть список заказов, а каждый заказ содержит список купленных вещей. Получить список всех купленных вещей можно так:
Разница между методами map и flatMap
• Метод
map
принимает функцию, которая вызывается для каждого элемента стрима и преобразует его в другое значение. В результате получается стрим с преобразованными элементами, структура стрима при этом не меняется.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<String> strings = numbers.stream()
.map(number -> String.valueOf(number))
.collect(Collectors.toList());
• Метод
flatMap
принимает функцию, которая преобразует каждый элемент стрима в новый стрим. Затем flatMap
объединяет (склеивает) полученные стримы в один общий.Пример. У нас есть список заказов, а каждый заказ содержит список купленных вещей. Получить список всех купленных вещей можно так:
List<Item> items = orders.stream()
.flatMap(order -> order.getItems().stream())
.collect(Collectors.toList());
JPoint 2025
Вчера сходил на JPoint — Java-конференцию для опытных разработчиков. Билет мне оплатила компания(правда, с условием отработать ещё полгода или вернуть деньги при увольнении) . Последний раз был на крупной конференции в 2018 в Питере на Joker. Если сравнивать, то участников и спонсоров сейчас стало поменьше и мерч поскромнее, зато стенды теперь более яркие и современные. Доклады по-прежнему на высоком уровне, особенно ажиотаж вызвал доклад про микробенчмарки. Организация тоже порадовала — кайфовый сайт с лк, чёткий тайминг, удобные дискуссионные зоны, обед в два потока — без очередей и суеты. В целом кайф!
Вчера сходил на JPoint — Java-конференцию для опытных разработчиков. Билет мне оплатила компания