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