I have object structure like below:
Order {
int code;
int id;
List<Item>;
}
Item {
int code;
int quantity;
List<Suborder>;
}
Suborder {
int code;
int quantity;
}
I have an object of O and I want a map from code to B. Whats the correct way to do this?
What I tried :
1 - Not working
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 - Working
order.getOrderItems().forEach(x -> x.getOrderItemSuborder().forEach(y -> suborderMap.put(y.getCode(),y)));
I am not sure if #2 is right way to do it.
How can i make #1 working?
P.S. : Starting with lambdas, might be a stupid question, but i don't know that if it is :p
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…