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