Я щойно почав грати з лямбдами Java 8 і намагаюся реалізувати деякі речі, до яких я звик у функціональних мовах.
Наприклад, більшість функціональних мов мають якусь функцію пошуку, яка працює над послідовностями, або списки, що повертає перший елемент, для якого є предикат true
. Єдиний спосіб я бачу досягти цього в Java 8:
lst.stream()
.filter(x -> x > 5)
.findFirst()
Однак це здається мені неефективним, оскільки фільтр сканує весь список, принаймні, наскільки я розумію (що може бути неправильним). Чи є кращий спосіб?