Потоки в java обычно более краткие. В строгом смысле они должны способствовать меньшей изменчивости и, следовательно, не изменять состояния вашего объекта. Однако в противном случае и последовательные потоки, и a для l oop делают одно и то же. исх. TDD java
Есть свои недостатки, о которых обычно люди не говорят. For-l oop облегчает использование кучи памяти и процессора. Если лучшая скорость процессора и куча является приоритетом, использование потоков обычно не рекомендуется.
Будучи новичком ie в программировании, я все же предпочел бы иметь декларативный стиль программирования без явного показа потока управления, и фактически он "работает"
На практике вам определенно разрешено изменять состояние экземпляра, но технически не источник источника. Вам не разрешено изменять источник данных во время выполнения функции потока javase8.stream
Так что, в основном, в качестве примера: Это хорошо: основано на вашем коде:
Arrays.stream(arr).forEach(x -> instance.modifyInstanceStateWithNum(x));
Но что-то вроде этого не так:
List<Pojo> pojos; //some pojo
pojos.stream().forEach(pojo-> pojos.remove(pojo)); //THIS ISN'T RIGHT
Подводя итог вашим сомнениям, это зависит от того, что вы делаете, правильно или нет, и от того, как вы считаете, код должен сосредоточиться больше на удобочитаемости кода, эффективности и тысячах строк кода, я честно предпочитаю lambda functions
вместо generi c for-l oop, пока «это работает», и любой может легко понять, что я пытался сделать.
Это также совмещается в сочетании с FP-ориентированным программированием и выглядит так, как развиваются языки программирования, это уважается.