Ich habe Objektstruktur wie unten:Convert Liste der Liste des Objekts auf eine Karte - mit Lambda-Ausdrücke in Java 8
Order {
int code;
int id;
List<Item>;
}
Item {
int code;
int quantity;
List<Suborder>;
}
Suborder {
int code;
int quantity;
}
Ich habe ein Objekt von O und ich möchte eine Karte von Code B. Was ist das richtige Weise, dies zu tun?
Was ich versucht:
1 - nicht
order.getOrderItems().stream().flatMap(l -> l.getOrderItemSuborder().stream()).collect(Collectors.toMap(x -> x.getCode() , Function.identity())); // x.getCode() seems to be not available here :(
2 arbeiten - Arbeits
order.getOrderItems().forEach(x -> x.getOrderItemSuborder().forEach(y -> suborderMap.put(y.getCode(),y)));
Ich bin nicht sicher, ob # 2 richtige Weg, es zu tun ist.
Wie kann ich # 1 arbeiten lassen?
P.S. : Beginnend mit Lambda-Ausdrücke, könnte eine dumme Frage, aber ich weiß nicht, dass, wenn es: p
verpasst. Ihr "Beispiel" Code für O, A, B ist sehr verwirrend. Ziehen Sie in Erwägung, "echte" Klassen dort zu platzieren, mindestens * vollständige Typen *. Ich habe keine Ahnung, was du mit "a; b;" x; oder y ". Und dann: stellen Sie sicher, Ihre Quellcode-Eingabe richtig zu formatieren, auch wenn es in einer nummerierten Liste! – GhostCat
Vielen Dank für wertvolle Rückmeldung. Ich werde dies für zukünftige Fragen beachten :) –