С выпуском Java 8 в 2014 году Oracle объявила о некоторых значительных улучшениях в спецификациях языка Java и множестве новых функций, таких как новый Java Time API, стандартные и статические методы в интерфейсах, долгожданный метод forEach для итерируемых интерфейсов, функциональных интерфейсов и лямбда-выражений. и множество других улучшений JVM и самого языка. Благодаря всем таким значительным улучшениям Java 8 была быстро адаптирована почти всеми системами, работающими с предыдущими версиями Java, и до сих пор остается самой популярной версией Java.

Краткая история моего пути к программированию

Я начал программировать в начале 2016 года. Это было время, когда отрасль была очень зрелой с концепцией объектно-ориентированного программирования, поэтому, как и все, я начал с C, а затем с C++ для понимания концепций ООП. Затем однажды я начал изучать Java, чтобы заняться разработкой приложений и веб-приложений, и сразу же влюбился в этот язык. На java было так просто делать что-то, чем на C или C++. Встроенные языковые функции языка для обработки строк, классов и объектов, API коллекции Java, конечно, сделали мою жизнь намного проще. Но была одна вещь в языке, которая не давала мне покоя некоторое время, и это были лямбда-выражения. Функциональный стиль программирования, которому следовали в java 8 с введением лямбда-выражений, был для меня очень новым, и мне было очень трудно разобраться. Но постепенно, с изменением тенденций в разработке программного обеспечения и растущим спросом на рынке на разработчиков Javascript, я начал программировать на JS.

Итак, давайте посмотрим на сходство двух языков.

Хорошо, теперь давайте перейдем к делу. Хватит разговоров, давайте посмотрим код.

Этот стиль объявления функций не является чем-то, что вы могли бы увидеть в типичном объектно-ориентированном мире программирования. Следовательно, для меня просто не имело смысла то, что на самом деле происходит в коде. Поэтому в течение многих лет я избегал написания лямбда-выражений. Но для некоторых javascript-разработчиков, читающих эту статью, будет как бы чего не понимать в этом. Этот код прям как стрела (каламбур).

Давайте посмотрим на похожий код Javascript

Если вы посмотрите на код, вы обнаружите, что есть только 1 отличие. Javascript использует синтаксис =›, тогда как java использует синтаксис -›. Остальное все так же.

(параметр1, параметр2) –› { тело функции } (JS)

(параметр1, параметр2) =› { тело функции } (Java)

Еще пример

Смотрите, я понял. Лямбды в java такие же, как функции Arrow в javascript.

Вывод:

Ключевым моментом является то, что если вы являетесь разработчиком Java и провели большую часть своего времени с объектно-ориентированным стилем кодирования, скорее всего, вы столкнетесь с трудностями, пытаясь понять функциональный подход, используемый в некоторых языковых функциях, особенно если вы работаете с потоки и использование таких методов, как filter(), mapToInt(), sorted() и т. д. Если вы доверяете мне, напишите код Javascript в течение нескольких дней в качестве своего стороннего проекта, это поможет вам мыслить более функциональным способом программирования. и, следовательно, в конечном итоге поднимет вашу Java-игру на новый уровень.
Спасибо за чтение :)