ich ein Objekt, das wie folgt aussieht folgendeJava 8 Stream-Filterwert von Liste in einer Liste
class MyObject {
String type;
List<String> subTypes;
}
Ist es möglich, eine Liste von MyObject ist gegeben zu verwenden Java 8 Ströme sowohl von der Art zu filtern und dann der Subtyp?
Bisher habe ich
myObjects.stream()
.filter(t -> t.getType().equals(someotherType)
.collect(Collections.toList());
aber innerhalb dieses möchte ich auch einen weiteren Filter auf jeder der Subtypen zu denen auf einem bestimmten Subtyp Filterung. Ich kann nicht herausfinden, wie das geht.
Ein Beispiel wäre
myObject { type: A, subTypes [ { X, Y, Z } ] }
myObject { type: B, subTypes [ { W, X, Y } ] }
myObject { type: B, subTypes [ { W, X, Z } ] }
myObject { type: C, subTypes [ { W, X, Z } ] }
I in Matchtype B und subType Z passieren würde, so würde ich ein Ergebnis erwarten -> myObject Typ B, Subtypen: W, X, Z
folgenden Gibt zur Zeit 2 Einträge in einer Liste zurück.
myObjects.stream()
.filter(t -> t.getType().equals("B")
.collect(Collections.toList());
aber ich möchte ein zusätzliches Filter über die jede der Subtypen hinzuzufügen und nur passende wobei ‚Z‘ vorliegt.
Können Sie ein Beispiel für ein Spiel und ein Miss geben? Müssen * alle * Elemente in 'subTypes' übereinstimmen? –
Möchten Sie 'subTypes' filtern oder was? – kraskevich
Was meinen Sie genau mit "einem anderen Filter auf jedem der SubTypes, der diese auf einem bestimmten Subtyp filtert"? Bitte geben Sie ein Beispiel. –