Ich versuche seit ein paar Stunden vergeblich eine Liste zu filtern und bekomme das mit dem "Predicate" nicht wirklich geschnallt... Diverse Hilfeseiten auf Englisch mit Beispielen haben mich aber leider nicht vorangebracht - diese beziehen sich immer gleich auf ein ListView oder anderes Element. Mein Ziel ist es einfach nur eine Liste mit knapp 200 Einträgen zu filtern um diese weiter zu verwenden...
Wie muss ich das anstellen?
Ausgangssituation:
Die Liste listTroops hat ca 200 Einträge - die Klasse Troop selbst, hat einen getter -> getId() und holt einen int Wert.
Ich möchte jetzt alle Einträge aus listTroops rausfiltern, wo getId() den Wert -1 zurückliefert. Alle übrigen Troop sollen in der Liste filteredTroops landen damit ich damit weiterarbeiten kann.
Wie funktioniert das ganze? Dieses Predicate will immer nur mit boolean arbeiten und ich hab echt keine Idee mehr was ich noch probieren könnte um das zu erreichen...
Meine (wahrscheinlich total falschen) Versuche sehen so in der Richtung aus:
Dabei hat die Liste filteredTroops aber genausoviele Einträge wie listTroops vorher.
Bitte um Hilfe!
Wie muss ich das anstellen?
Ausgangssituation:
Java:
private static ObservableList<Troop> listTroops = FXCollections.observableArrayList();
private static FilteredList<Troop> filteredTroops = new FilteredList<>(listTroops);
Ich möchte jetzt alle Einträge aus listTroops rausfiltern, wo getId() den Wert -1 zurückliefert. Alle übrigen Troop sollen in der Liste filteredTroops landen damit ich damit weiterarbeiten kann.
Wie funktioniert das ganze? Dieses Predicate will immer nur mit boolean arbeiten und ich hab echt keine Idee mehr was ich noch probieren könnte um das zu erreichen...
Meine (wahrscheinlich total falschen) Versuche sehen so in der Richtung aus:
Java:
filteredTroops = listTroops.filtered(troop -> {
if(troop.getId() != -1){
return true;
} else {
return false;
}
});
Bitte um Hilfe!