Java 8

tanzverfuehrung

Bekanntes Mitglied
Könnte mir jemand sagen wie ich sowas in einem lamda(java 8) ausdruck bekomme?

Java:
Collection<@NonNull IRule> allRules = getRuleProcessor().getAllRules();
        boolean existId = false;
        for (IRule iRule : allRules)
            if (iRule.getId() == id)
                existId = true;

if(!existId){
//tue etwas
}


ich hatte es so versucht
Java:
    if (getRuleProcessor().getAllRules().stream().anyMatch(r -> ruleAlreadyExists(id, r))){

//tue etwas....}



   /**
    * Liefert
    * <ul>
    * <li><code>true</code>, wenn für die Id eine Regeln in der Datenbank vorhanden ist
    * <li><code>false</code>, wenn für die Id keine Regeln in der Datenbank vorhanden ist
    * </ul>
    */
   private boolean idNotExists(long id, IRule r) {
     return !Objects.equals(r.getId(), id);
   }

Dies war aber nicht richtig, weil es immer wieder überschrieben wird.bitte um hilfe.danke
 
Zuletzt bearbeitet von einem Moderator:
Naja du hast es doch eh schon selbst da stehen. Dir fehlte das nicht:
Java:
if (!getRuleProcessor().getAllRules().stream().anyMatch(r -> r.getId() == id)) {
  System.out.println("Do something");
}

Aber besser wäre natürlich:
Java:
if (getRuleProcessor().getAllRules().stream().noneMatch(r -> r.getId() == id)) {
  System.out.println("Do something");
}
 
Ich vermute, dass du anyMatch und noneMatch verwechselt hast.
Java:
if (getRuleProcessor().getAllRules().stream().noneMatch(r -> r.getId() == id)) {
  //tue etwas....
}
 

Zurück
Oben