Как упростить сложный фильтр потока опционовJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как упростить сложный фильтр потока опционов

Сообщение Anonymous »

Я новичок в необязательном в Java и хотел бы реализовать следующую логику.
Ввод представляет собой список строк (он не пуст).
Если список содержит шоколад, мне нужен этот элемент. В противном случае я хочу, чтобы первый элемент соответствовал шаблону .*ap.*. Если я по-прежнему не получаю элемент, мне нужен первый элемент списка.
Я уже настроил этот фрагмент кода, который выполняет эту работу, но я хочу знать, можно ли упростить этот код:
List testList = Arrays.asList("banana", "apple", "cheese", "chocolate");

String food = testList.stream()
.filter(str -> str.equals("chocolate"))
.findFirst()
.orElseGet(() -> testList.stream()
.filter(str -> str.matches(".*ap.*"))
.findFirst()
.orElseGet(() -> testList.get(0)));


Подробнее здесь: https://stackoverflow.com/questions/797 ... als-stream
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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