Acabei de começar a jogar com o Java 8 lambdas e estou tentando implementar algumas das coisas com as quais estou acostumado nas linguagens funcionais.
Por exemplo, a maioria das linguagens funcionais possui algum tipo de função find que opera em seqüências ou listas que retornam o primeiro elemento, para o qual o predicado é true
. A única maneira de conseguir isso no Java 8 é:
lst.stream()
.filter(x -> x > 5)
.findFirst()
No entanto, isso me parece ineficiente, pois o filtro varrerá a lista inteira, pelo menos para minha compreensão (o que pode estar errado). Existe uma maneira melhor?