170 похожих чатов

Всем добрый день. Подскажите, пожалуйста, в чём основные преимущества использования

Java streams API? "Простых ответов" лично у меня не получается - влияние на производительность скорее негативное, перспективы "легко распараллелить вычисления" - очень сомнительные; улучшение читаемости кода - тоже, на мой взгляд, под вопросом.

Тогда в чём проявляются преимущества stream API?

3 ответов

2 просмотра

Быстрее писать код, другим легче читать

Добавлю к минусам ещё что сам API ограничен. Приходится под него код временами прям подстраивать, что подтверждается вопросами на SO типа «а как красиво сделать через стримы»

для меня стримы это другой уровень абстракции. Если ты пишешь for (..) {} то ты пишешь "как надо" (дословно для каждого элемента) выполнять алгоритм, а когда ты пишешь .stream() ты говоришь - что выполнять. В этом как я считаю и есть принципиальная разница. Из этого определения следует, что чернз стрим мы уже не заботимся о том, а как именно происходит итерация по элементам и даем птространство для маневра коимплятору, который в будущем веротяно сможет оптимизировать (сделать безопаснее и тд) эту итерацию за нас. Плюс стрима в том, что стрим можно объявить, но не выполнять, а следовательно передавать как атомарный набор операций при необходимости. Вобщем стрим это не вопрос карсоты даже, а просто разделение ответственности между программистом и внутренним предсавляением языка и средствами работы с ним.

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
8
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Доброе утро! Не совсем понятно как установить счетчик яндекс метрики на сайт. И потом ещё цели проставить?
Евгения
18
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
слушайте, ребят, немного не по теме вашего диалога. Пишу тулзу для обмена данными через UART с сжатием, она почти работает! но: Начало работы сервера Порт /dev/ttyUSB0 успешно...
quantumde1 Зубенко
3
Гуру, подскажите, меня уже критиковали за неумением, но и в инете я решения не нашел, тем более в доках абракадабры. В 12.1 студии появился новый тип TSQLTimeStampOffset , ест...
Delphi Photo
10
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Карта сайта