.equals()
сравнивает данные в классе (при условии, что функция реализована). ==
сравнивает местоположения указателя (расположение объекта в памяти).
==
возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals()
возвращает true, если два объекта содержат одни и те же данные equals()
Versus ==
в Java
Это может вам помочь.
Это происходит потому, что JVM генерирует новый класс на лету, когда Lambda вызывается впервые. После этого этот класс можно использовать повторно. Вот почему в первый раз у вас высокая задержка.
Кроме того, важно понимать, что лямбды не всегда являются лучшими вариантами, особенно для простых операций, которые можно выполнить с помощью старого доброго цикла. Эта статья является богатой и довольно хорошим чтением для тех, кто интересуется производительностью Stream.