我有一個類型爲Scala的Order列表。Scala:分別處理列表清單
case class Order(id: String, prod: Product, quantity: Int)
case class Product(id: String, name: String, tasks: List[Task])
我這樣做,我得到一個List(List[Task]))
:
val listTaskLists = orders.map(p => p.getProduct().tasks)
現在我想返回類型TaskSchedule的名單。此列表將具有的條目數是listTaskLists乘以每個產品的數量的大小。
例如,我有這些項:
val order1 = new Order("ORD_1", product1, 1) // product1 has 4 tasks
val order2 = new Order("ORD_2", product2, 2) // product2 has 6 tasks
val order3 = new Order("ORD_3", product3, 3) // product3 has 5 tasks
val order4 = new Order("ORD_4", product4, 1) // product4 has 5 tasks
val orders = o1 :: o2 :: o3 :: o4 :: Nil
在考慮具有這種我應該返回TaskSchedule的列表具有36個條目:(4個任務* 1個電棒)+(6個任務* 2個電棒) +(5任務* 3刺)+(5任務* 1刺)= 36任務時間表
但我不能這樣做。我得到的最接近的是4個任務計劃(listTaskLists的大小):
listTaskLists.map(s => new TaskSchedule(null, 1, 100 minute, 200 minute))
任何人都可以幫我嗎?
從您的問題很難確定這是否真的是你問的,但我的猜測是你是廁所國王爲'.flatMap'。嘗試執行'orders.flatMap'而不是'orders.map',看看它是否給你你想要的。 – Dima