Eigenschaften aus Objekt einer Liste holen

r4w

Mitglied
Hallo,

ich habe vor eine Anwendung zur Verwaltung von Geräten zu schreiben.
Ist haupts. als Übung gedacht.

Folgende Klassen gibt es:
(existieren auch als Tabelle im MySQL)

- Klasse Mitarbeiter
* id
* name

- Klasse Geraet
* id
*name

- Klasse Ausleihe
* id
* mitarbeiterID
* geraetID

Für jede Klasse gibt es eine ObservableList (mitarbeiterList, geraeteList und ausleihenList), um die Objekte zu halten und an die TableViews zu binden. Nun möchte ich gerne aus einem Objekt der "ausleiheList" den Mitarbeiternamen ermitteln.

Auf SQL wollte ich verzichten, da die Daten ja schon in der Liste vorhanden sind. Die erweiterte for-Schleife wäre eine Idee, wobei ich sie recht umständlich finde.

Gibts da nicht etwas kompaktes?
 
Ich verstehe dein Problem nicht ganz.

Wenn du auf ein Object aus einer ObservableList zugrifen willst, nimm doch die get(int index) Methode. Über die wiederum kannst du dann auf die objektspezifischen Methoden (also bspw. Getter für Name, id,..) zugreifen.

Sollte das nicht sein was du suchst dann schildere dein Problem bitte noch mal etwas genauer.

PS:
wenn du einen kompakten Weg willst könntest du Streams benutzen:

Java:
public Mitarbeiter getMitarbeiterByName(String name)
{ 
    return mitarbeiterList.stream().filter((Mitarbeiter m) -> m.getName().equals(name)).collect(Collectors.toList()).get(0);
}

Gruß Robert
 
Zuletzt bearbeitet:
@Robat Würde besser mit einer short-circuit terminal operation funktionieren (findAny/findFirst):
Java:
public Mitarbeiter getMitarbeiterByName(String name) {
  return mitarbeiterList.stream().filter(m -> Objects.equals(m.getName(), name)).findFirst()
      .orElseThrow(NoSuchElementException::new);
}
 
Das ständige iterieren wollte ich gern vermeiden.

Werde es mal mit Flowns Variante probieren.. Streams sind noch Neuland für mich..

Danke, Feedback kommt!
 

Neue Themen


Zurück
Oben