Я новичок в необязательном в 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