ObservableList filtern

MrSnake

Mitglied
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:
Java:
private static ObservableList<Troop> listTroops = FXCollections.observableArrayList();
private static FilteredList<Troop> filteredTroops = new FilteredList<>(listTroops);
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:
Java:
filteredTroops = listTroops.filtered(troop -> {
    if(troop.getId() != -1){
        return true;
    } else {
        return false;
    }
});
Dabei hat die Liste filteredTroops aber genausoviele Einträge wie listTroops vorher.

Bitte um Hilfe!
 

MrSnake

Mitglied
Danke @ Kababär - diesen Link habe ich unter anderem auch besucht. Dort bezieht sich das ganze auf ein Textfeld und ein Tabelle - das war mir mit den ganzen Propertys und Listener etwas unübersichtlich^^

Ich bin davon ausgegangen, dass man mit filtered() eine Möglichkeit hat Daten zu filtern OHNE sie in irgendeiner for-Schleife zu loopen. Je mehr Einträge man hat, desto länger wird das ganze ja irgendwann dauern. Die einfache Lösung wird wohl erstmal eine for-Schleife sein - kann mir vielleicht trotzdem mal jemand erklären wie diese Predicates funktionieren bzw wie man sie andwendet? In meinem riesen Rheinwerk Buch hab ich auf anhieb nichts finden können....
 

Kababär

Top Contributor
Ich glaube dieses filteredList ist im Prinzip nichts anderes wie im Java 8 neue funktionsparamter der Lambdas:
(filtered(abc) -> ... ).
Also intern wird das auch mittels schleifen gelöst.
Also immer wo true oder false Werte erwartet werden, können solche Prädikate eingesetzt werden. So ähnlich wie bei Angewandter Logik.

Hier habe ich folgenden Link gefunden, wo das nochmal etwas deutlicher wird. Da das durch die Eigenschaften eines Prädikats ein relativ großes Gebiet abdeckt (Methoden, Lambdas, Streams, ..), überlasse ich dich mal dem Link, ohne ihn wirklich ganz durchgelesen zu haben.

Aber vielleicht bist du auch schon darauf gestoßen :/

http://howtodoinjava.com/java-8/how-to-use-predicate-in-java-8/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A ObservableList<String> Java Basics - Anfänger-Themen 6
P Veränderungen einer ObservableList Java Basics - Anfänger-Themen 10
M ObservableList wird nicht richtig geleert Java Basics - Anfänger-Themen 0
J Tableview, ObservableList ein bisschen dynamisch Java Basics - Anfänger-Themen 6
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
L Zahlungen nach Monat filtern Java Basics - Anfänger-Themen 2
L Texte filtern Java Basics - Anfänger-Themen 36
CptK Bestimmten Integer Wert aus Array filtern Java Basics - Anfänger-Themen 2
S Integer aus Array filtern Java Basics - Anfänger-Themen 4
P Signal Filtern Java Basics - Anfänger-Themen 1
J Objekttypen vergleichen und filtern Java Basics - Anfänger-Themen 6
K Lambda - kompliziertes filtern Java Basics - Anfänger-Themen 5
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
J Textdatei filtern und bearbeiten Java Basics - Anfänger-Themen 1
B Sortieren und Filtern von Tabellen Java Basics - Anfänger-Themen 6
B Input/Output output Datenstrom filtern Java Basics - Anfänger-Themen 0
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
Java-DAU String filtern Java Basics - Anfänger-Themen 22
L Palindrome aus Sätzen filtern Java Basics - Anfänger-Themen 53
S Liste speziell filtern Java Basics - Anfänger-Themen 20
Kaniee CharArrayWriter filtern Java Basics - Anfänger-Themen 4
S Datensätze filtern Java Basics - Anfänger-Themen 3
A String mittels RegEx filtern Java Basics - Anfänger-Themen 13
F String filtern und Systeminfos Java Basics - Anfänger-Themen 19
X Strings filtern? Java Basics - Anfänger-Themen 10
J Aus einem String unbekannte zeichen filtern Java Basics - Anfänger-Themen 11
J Regex + Match Zahlen filtern Java Basics - Anfänger-Themen 5
S LinkedList<String[]> filtern und sortieren Java Basics - Anfänger-Themen 9
S String filtern mit replace -> Problem Java Basics - Anfänger-Themen 6
M Filtern von Dateinamen Java Basics - Anfänger-Themen 7
G Zahlen aus String filtern? Java Basics - Anfänger-Themen 3
G Filtern von nicht-darstellbaren Zeichen Java Basics - Anfänger-Themen 3
M ordner überwachen und dateien filtern Java Basics - Anfänger-Themen 3
M Quelltext - Urls filtern Java Basics - Anfänger-Themen 4
G String "filtern" Java Basics - Anfänger-Themen 2
S Liste oder Array filtern Java Basics - Anfänger-Themen 2
N Textdatei einlesen, Filtern und Splitten Java Basics - Anfänger-Themen 4
J Mailadresse aus String filtern Java Basics - Anfänger-Themen 2
C Dateinamen Filtern Java Basics - Anfänger-Themen 10
M Kann man im Filter nach mehreren Strings filtern lassen Java Basics - Anfänger-Themen 11
M Dateien aus Verzeichnis filtern, aber nicht nach Endung Java Basics - Anfänger-Themen 59
G Filtern einer 3stelligen Zahl Java Basics - Anfänger-Themen 7
G aufsteigenden Teilstring aus String filtern? Java Basics - Anfänger-Themen 2
D RGB-Frabmodell filtern Java Basics - Anfänger-Themen 9
G Reguläre Ausdrücke zum Filtern von logfiles Java Basics - Anfänger-Themen 2
M java sonderzeichen filtern Java Basics - Anfänger-Themen 3
E Laufwerksangabe aus Pfadangabe (String) filtern Java Basics - Anfänger-Themen 10
H Verzeichnis lesen, und nur unterverzeichnisse heraus filtern Java Basics - Anfänger-Themen 6
G mit .* filtern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben