Ho un un oggetto che assomiglia al seguenteJava 8 flusso valore di filtraggio di lista in una lista
class MyObject {
String type;
List<String> subTypes;
}
E 'possibile, data una lista di MyObject di usare Java 8 flussi di filtrare sia dal tipo e poi il sottotipo?
Finora ho
myObjects.stream()
.filter(t -> t.getType().equals(someotherType)
.collect(Collections.toList());
ma all'interno di questo voglio anche un altro filtro su ciascuna dei sottotipi filtraggio quelli su un particolare sottotipo troppo. Non riesco a capire come farlo.
Un esempio sarebbe
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 } ] }
avrei passare matchtype B e subType Z, in modo che ci si aspetterebbe uno risultato -> tipo myObject B, sottotipi: W, X, Z
seguente attualmente restituisce 2 elementi in una lista.
myObjects.stream()
.filter(t -> t.getType().equals("B")
.collect(Collections.toList());
ma vorrei aggiungere un ulteriore filtro sulla ciascuno dei sottotipi e solo corrispondenza in cui è presente 'Z'.
Puoi fare un esempio di partita e miss? Gli elementi * tutti * in corrispondenza di 'sottotipi 'devono? –
Vuoi filtrare 'sottotipi 'o cosa? – kraskevich
Cosa intendi esattamente per "un altro filtro su ogni sottotipo che filtra quelli su un sottotipo particolare"? Per favore, fai un esempio. –