bearbeiten filtern:Java Streams - Wie basierend auf Funktionsausgang richtig
Grundsätzlich möchte ich alle Einträge filtern, ob entry.getObject() ist ein String, der Wert „Wert“ enthält.
So habe ich einen Block von Code, der etwa wie folgt aussieht:
list.stream()
.filter((entry) -> entry.getObject() != null)
.filter((entry) -> entry.getObject() instanceof String)
.filter((entry) -> ((String)entry.getObject()).toLowerCase().contains(value))
.collect(Collectors.toList());
Das Hauptproblem ist, dass ich nicht herausfinden kann, wie dies zu strukturieren den Wert von entry.getObject anhalten(), und ich kann nicht herausfinden, wie man die Ausgabe von entry.getObject() manipuliert, ohne den Eintrag aus den Augen zu verlieren, der den Wert ergeben hat. Frühere Versuche sah mehr wie folgt aus:
list.stream()
.map((entry) -> entry.getObject())
.filter((object) -> entry instanceof String)
.map((object) -> (String)entry)
.filter((str) -> str.toLowerCase().contains(value))
/* ... */
Aber dann konnte ich keine Möglichkeit, herauszufinden, um es auf den Eintrag in der Liste zu beziehen, die ich mit begann.
Was entspricht die Klasse dem Eintrag? –
Wenn ich Ihre Bedürfnisse richtig verstehe, möchten Sie Ihre Änderung in der Zeichenfolge im entsprechenden Eintrag widerspiegeln? –
Nein, im Grunde möchte ich basierend auf einer Eigenschaft einer Zeichenfolge filtern, die ich von "Eintrag" erhalten, aber um diese Eigenschaft zu bestimmen, muss ich auch die Zeichenfolge in verschiedenen Phasen zuordnen und filtern. – user1125238