Lambda - kompliziertes filtern

Kababär

Top Contributor
Hi,

Ich habe eine xml Datei die, nicht vollständig hier aufgeführt, wie folgt aufgebaut ist:
Es gibt eine Lehrerliste, in der Lehrer als Objekte abgelegt sind. Ein Lehrer hat einen Stundenplan, wo unter anderem die von ihm zu unterrichtenden Fächer eingetragen sind.
Dann gibt es ein "No Relation" Objekt, das vorgibt was für den Lehrer nicht möglich ist, bspw weitere zu unterrichtende Fächer oder Lehrer, die nicht mit ihm in Beziehung stehen (rein thematisch) bspw Mathematik und BWL ( :D ).
Sieht circa so aus:
Code:
<lehrer_liste>
  <Lehrer Name"Boss">
    <stdp>
      <f_liste>
        <f Name="Bildverarbeitung">
         ...
      </f_liste>
    </stdp>
    <nr>
      <a_f> //Ausschluss Fächer
        <f Name="Erziehung"/>
        ...
      </a_f>
      <a_l> // Ausschluss Lehrer
        <Lehrer Name="Hugo"/>
        ...
      </a_l>
    </nr>
  </Lehrer>
  <Lehrer Name....>
  .....
  .....
  </Lehrer>
<Lehrer_liste>
Die xml habe ich mit JAXB eingelesen und mir stehen quasi alle Listen und Elemente sowie Attribute zu Verfügung und ich habe auch schon alles implementiert, aber die Klasse ist durch das ständige drüber iterieren aufgebläht und ich dachte mir eben: "Mensch, würdest du dich nur mit lambdas auskennen, könntest du ein Hexenwerk mit Filter, Flatmap und Co zusammenbrauen" und deshalb bin ich hier.
Was will ich letztendlich haben und wie habe ich es gemacht?
Ich bin zuerst über die Liste drüber und habe mir zwei Listen angelegt, eine für a_l und eine für a_f und habe da alles reingepackt was dementsprechend da drin steht.
Dann bin ich nochmal über jeden Lehrer und habe geguckt ob es ein a_f oder ein a_l gibt. Falls ja, merke ich mir den Namen des Lehrers und schreibe hinter diesen Lehrer alle Lehrer, die bei diesem Lehrer in a_l drin stehen und alle Lehrer, die ein Modul unterrichten, das in a_f drin steht.
Somit habe ich eine gute Übersicht über Lehrer und deren Relation zu Modulen und anderen Lehrern.
Geht so was auch mit lambdas?
Quasi eine mehrfache Iteration über eine Liste ohne explizit wieder die Liste aus der Hand geben zu müssen?

So etwas wie
Code:
LehrerListe.stream().filter(k -> k.hasAF || k.hasAL) Return k;
  .map(.....)
  .collect(....);
Bin mir gerade nicht mehr sicher wegen der richtigen Syntax. Aber kann ich aus einem Filter/einer map das Ergebnis zurückgeben und auf dem Ergebnis direkt weiterarbeiten?
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
map, filter etc geben immer einen Stream zurück, mit dem man dann weiterarbeiten kann...

Ich hab aber noch nicht so ganz verstanden, was du überhaupt vor hast, zeig mal Code ;)
 

InfectedBytes

Top Contributor
Code:
<lehrer_liste>
  <Lehrer Name"Boss">
    <stdp>
      <f_liste>
        <f Name="Bildverarbeitung">
         ...
      </f_liste>
    </stdp>
    <nr>
      <a_f> //Ausschluss Fächer
        <f Name="Erziehung"/>
        ...
      </a_f>
      <a_l> // Ausschluss Lehrer
        <Lehrer Name="Hugo"/>
        ...
      </a_l>
    </nr>
  </Lehrer>
  <Lehrer Name....>
  .....
  .....
  </Lehrer>
<Lehrer_liste>

Hat nicht wirklich was mit deiner Frage zu tun, aber gewöhne dir bitte DRINGEND diese furchtbare Namensgebung ab.
a_f, a_l, stdp, .... das sind weder gute Variablennamen, noch sollte sowas als xml tags genutzt werden. Benutze sinnvolle Namen, das hilft nicht nur dir, sondern auch den Leuten die sich deinen Code ansehen werden.
 

KaffeeFan

Bekanntes Mitglied
Habe letztens noch folgendes verwendet, vielleicht hilft dir das ja weiter:

Java:
ArrayList<String> arr = new ArrayList<>();

// bla bla bla
 
List<String> filter = arr.stream().filter(a -> a.matches(".*[1-9]")).collect(Collectors.toList());

for (String string : filter)
{
  System.out.println(string);
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Interface Parameter und Rückgabewerte in Lambda Ausdrücken verwenden Java Basics - Anfänger-Themen 16
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
X Collections.sort als Lambda Java Basics - Anfänger-Themen 14
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
I Lambda map -> Children bekommen Java Basics - Anfänger-Themen 1
L Java reduce() + Lambda Java Basics - Anfänger-Themen 10
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
G Java Lambda Ausdrücke Java Basics - Anfänger-Themen 19
M Java 8 Lambda Expression Java Basics - Anfänger-Themen 1
A Lambda Java Basics - Anfänger-Themen 9
A Lambda-Ausdrücke Java Basics - Anfänger-Themen 6
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
G Lambda Ausdrücke Java Basics - Anfänger-Themen 2
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
O Lambda Ausdrücke in einem Comparator Java Basics - Anfänger-Themen 4
B Interface Java Lambda Ausdruck. Java Basics - Anfänger-Themen 11
S Lambda Ausdrücke Streams Java Basics - Anfänger-Themen 6
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
M Lambda - Ausdruck zu Beschreibung erstellen Java Basics - Anfänger-Themen 7
M Lambda - Ausdrücke verstehen Java Basics - Anfänger-Themen 2
K Lambda-Expression Java Basics - Anfänger-Themen 4
T Lambda-Funktion bei Binärbäumen Java Basics - Anfänger-Themen 13
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
F Methoden Lambda Ausdrücke Methodensignatur Java Basics - Anfänger-Themen 6
E Hilfe bei Lambda-Ausdrücken in BlueJ Java Basics - Anfänger-Themen 1
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
C Lambda Ausdrücke Java Basics - Anfänger-Themen 1
TheSorm Java 8 Lambda-Ausdrücke Java Basics - Anfänger-Themen 9
M Lambda Expressions Java Basics - Anfänger-Themen 3
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
M Interpreter-Fehler Kompliziertes Array befüllen Java Basics - Anfänger-Themen 6
M kompliziertes Problem mit Listen sortieren Java Basics - Anfänger-Themen 5
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
MrSnake ObservableList 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