Encuentra el primer elemento por predicado

Acabo de comenzar a jugar con Java 8 lambdas y estoy tratando de implementar algunas de las cosas a las que estoy acostumbrado en lenguajes funcionales.

Por ejemplo, la mayoría de los lenguajes funcionales tienen algún tipo de función de búsqueda que opera en secuencias o listas que devuelve el primer elemento, para el cual el predicado estrue. La única forma en que puedo ver para lograr esto en Java 8 es:

lst.stream()
    .filter(x -> x > 5)
    .findFirst()

Sin embargo, esto me parece ineficiente, ya que el filtro escaneará toda la lista, al menos a mi entender (lo que podría estar mal). ¿Hay una mejor manera?