С момента появления Java 8 я действительно подключился к лямбдам и начал использовать их, когда это было возможно, в основном, чтобы привыкнуть к ним. Одним из наиболее распространенных способов использования является то, что мы хотим перебирать и действовать на коллекцию объектов, и в этом случае я либо прибегаю к forEach
, либо stream()
. Я редко пишу старый цикл for(T t : Ts)
, и я почти забыл о for(int i = 0.....)
.
Однако мы обсуждали это с моим руководителем на днях, и он сказал мне, что лямбды не всегда являются лучшим выбором и могут иногда мешать работе. Из лекции, которую я видел по этой новой функции, у меня появилось ощущение, что итерации лямбда всегда полностью оптимизированы компилятором и будут (всегда?) Лучше, чем голые итерации, но он просит отличиться. Это правда? Если да, то как мне отличить лучшее решение в каждом сценарии?
P.S: Я не говорю о случаях, когда рекомендуется применять parallelStream
. Очевидно, что они будут быстрее.