Найти первый элемент по предикатуJAVA

Программисты JAVA общаются здесь
Anonymous
Найти первый элемент по предикату

Сообщение Anonymous »

Я только начал экспериментировать с лямбда-выражениями Java 8 и пытаюсь реализовать некоторые вещи, к которым я привык, в функциональных языках.

Для Например, в большинстве функциональных языков есть своего рода функция поиска, которая работает с последовательностями или списками и возвращает первый элемент, для которого предикат истинен. Единственный способ добиться этого в Java 8:

Код: Выделить всё

lst.stream()
.filter(x -> x > 5)
.findFirst()
Однако мне это кажется неэффективным, поскольку фильтр будет сканировать весь список, по крайней мере, насколько я понимаю (что может быть ошибочным). Есть ли способ лучше?

Подробнее здесь: https://stackoverflow.com/questions/236 ... -predicate

Вернуться в «JAVA»