W szczególności mam TabPane i chciałbym wiedzieć, czy jest w nim element o określonym identyfikatorze.
Tak więc chciałbym to zrobić z wyrażeniem lambda w Javie:
boolean idExists = false;
String idToCheck = "someId";
for (Tab t : tabPane.getTabs()){
if(t.getId().equals(idToCheck)) {
idExists = true;
}
}
noneMatch
zamiastanyMatch
.O ile przyjęta odpowiedź jest prawidłowa, dodam bardziej elegancką wersję (moim zdaniem):
Nie zaniedbuj używania Stream # map (), które pozwala spłaszczyć strukturę danych przed zastosowaniem
Predicate
.źródło
equals
. Chociaż, przyznaję, przykład tutaj jest bardzo prosty, ale mam nadzieję, że rozumiesz, o co mi chodzi.map
, czy to kolejny krok przetwarzania, nie? Spróbuję porównać dwie metody :)map
) są z natury leniwe . Oznacza to, żegetId
metoda nie jest stosowana do każdego elementu kolekcji. Jest oceniany leniwie, dopóki nieanyMatch
zwróci true .Powyższe odpowiedzi wymagają pobrania nowego obiektu strumienia.
źródło