Size: a a a

2020 December 07

T

Tagir in pro.jvm
Torino
.count()    😊
Что-то вы делаете не так. Но в целом уж лучше forEach пустой, чем count. Count, кстати, не гарантирует, что вообще выполнит стрим
источник

T

Torino in pro.jvm
разве count() не терминальный метод?
источник

T

Torino in pro.jvm
я согласен что count() как триггер - плохое решение как минимум с точки зрения замыливания логики, но воспринимал его как терминальный
источник

VP

Vladimir Petrakovich in pro.jvm
Torino
я согласен что count() как триггер - плохое решение как минимум с точки зрения замыливания логики, но воспринимал его как терминальный
Если стрим counted, то зачем выполнять лишнюю работу
источник

T

Torino in pro.jvm
логично, спасибо
источник

T

Tagir in pro.jvm
Vladimir Petrakovich
Если стрим counted, то зачем выполнять лишнюю работу
Sized. Но да.
источник

VP

Vladimir Petrakovich in pro.jvm
Tagir
Sized. Но да.
Термин забыл, но помню, что такое свойство есть)
источник

T

Tagir in pro.jvm
Вообще нет гарантий, что будущие версии джавы не научатся чухать, например, пустая ли лямбда в forEach, и игнорить стрим, если пустая
источник

T

Tagir in pro.jvm
Сайд-эффекты в стриме - стрелять себе в ногу
источник

IP

Iaroslav Postovalov in pro.jvm
Tagir
Вообще нет гарантий, что будущие версии джавы не научатся чухать, например, пустая ли лямбда в forEach, и игнорить стрим, если пустая
ээ, минус обратная совместимость же ж
источник

DC

Denis Chikanov in pro.jvm
Iaroslav Postovalov
ээ, минус обратная совместимость же ж
Ну, беглый взгляд по докам по стримам от Оракла нигде не встречает слов "бля буду, оно точно исполнится, если внутри ничего не исполняется".
источник

IP

Iaroslav Postovalov in pro.jvm
Denis Chikanov
Ну, беглый взгляд по докам по стримам от Оракла нигде не встречает слов "бля буду, оно точно исполнится, если внутри ничего не исполняется".
но код-то ломается
источник

IP

Iaroslav Postovalov in pro.jvm
Denis Chikanov
Ну, беглый взгляд по докам по стримам от Оракла нигде не встречает слов "бля буду, оно точно исполнится, если внутри ничего не исполняется".
хм
источник

IP

Iaroslav Postovalov in pro.jvm
впрочем, в спеке по терминльным операциям написано, что оно может не вычислять стрим
источник

IP

Iaroslav Postovalov in pro.jvm
ладно, тогда не минус
источник

VP

Vladimir Petrakovich in pro.jvm
В доке от самого Stream написано, что полагаться на выполнение чего угодно - плохая идея (если не гарантируется явно)
источник

DC

Denis Chikanov in pro.jvm
Iaroslav Postovalov
но код-то ломается
Если вы используете особенности реализации, которые не являются частью спецификации, сломавшийся код является вашей проблемой.

Так-то можно и хэшсет обходить в надежде на какой-то порядок элементов...
источник

IP

Iaroslav Postovalov in pro.jvm
Denis Chikanov
Если вы используете особенности реализации, которые не являются частью спецификации, сломавшийся код является вашей проблемой.

Так-то можно и хэшсет обходить в надежде на какой-то порядок элементов...
эм. я уже написал, что специфицировано, что стрим может не вычисляться для ЛЮБОЙ терминальной операции
источник

DC

Denis Chikanov in pro.jvm
Iaroslav Postovalov
эм. я уже написал, что специфицировано, что стрим может не вычисляться для ЛЮБОЙ терминальной операции
Ну, да, я просто дописал сообщение чуть позже
источник

ВШ

Виктор Шиян... in pro.jvm
Всем привет. Есть такая задача скачать zip архив по урлу. Потом пройтись по всем вложенным файлам и распарсить их. Сейчас я это делаю так, с помощью рестТемплей тяну byte[], его в InputStream, далее в ZipInputStream, ну а дальше работаю с архивом. Правильно я понимаю , что я с ZipInputStream не смогу работать пока не скачается весь архив с помощью RestTemplate?
источник