2016-08-30 49 views
0

我有一個Order實體,它包含其中的項目列表,我需要循環顯示訂單列表,每個訂單包含項目列表,我需要提取項目從單獨的項目,我需要提取單個項目數量 這裏我的代碼使用lambda運算符從嵌套列表中獲取值java 8

public class order{ 
    private Integer orderId; 
    private String orderNo; 
    . 
    . 
    private List<item> items; 
    . 
    . 
    . 
} 

public class item{ 
    private Integer itemId; 
    private String itemCode; 
    private String itemDescription; 
    private BigDecimal cost; 
    . 
    . 
    . 
} 

如何java8循環呢?

回答

2

如果你有一個:

List<Order> list = ... 

你可以用.flatMap()Item對象的嵌套列表(S):

List<Item> allItems = list.stream() 
          .map(Order::getItems) 
          .flatMap(List::stream) 
          .distinct() 
          .collect(Collectors.toList()); 
1

你的解釋是混亂的。

如果你有,你需要循環的單品訂單,它真的很容易:

Order singleOrder; 

singleOrder.getItems().stream() 
    .//whatever else you need; 

如果你有訂單列表,它仍然很容易:

List<Order> multipleOrders; 

multipleOrders.stream() 
    .map(Order::getItems) 
    .flatMap(List::stream) 
    .//whatever else you need 
相關問題