Подтвердить что ты не робот

Как проверить, существует ли элемент с использованием выражения лямбда?

В частности, у меня есть TabPane, и я хотел бы знать, есть ли в нем элемент с определенным идентификатором.

Итак, я хотел бы сделать это с помощью выражения lambda в Java:

boolean idExists = false;
String idToCheck = "someId";

for (Tab t : tabPane.getTabs()){
    if(t.getId().equals(idToCheck)) {
        idExists = true;
    }
}
4b9b3361

Ответ 1

Попробуйте использовать anyMatch выражения Lambda. Это гораздо лучший подход.

 boolean idExists = tabPane.getTabs().stream()
            .anyMatch(t -> t.getId().equals(idToCheck));

Ответ 2

Хотя принятый ответ верен, я добавлю более элегантную версию (по-моему):

boolean idExists = tabPane.getTabs().stream()
    .map(Tab::getId)
    .anyMatch(idToCheck::equals);

Не пренебрегайте использованием Stream # map(), которое позволяет сгладить структуру данных до применения Predicate.