Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何将类转换为映射[X,(列表[Y],Z)]?_Scala_Playframework - Fatal编程技术网

Scala 如何将类转换为映射[X,(列表[Y],Z)]?

Scala 如何将类转换为映射[X,(列表[Y],Z)]?,scala,playframework,Scala,Playframework,我有列表收集的数据如下: case class Expense_detail(po_id: Long, supplier_id: String, price: String) Expense_detail(1,"S00001","1000.0"), Expense_detail(2,"S00001","2000.0"), Expense_detail(3,"S00002","3,000.0"), Expense_detail(4,"S00003","4,000.0") 是否可以将其映射

我有
列表
收集的数据如下:

case class Expense_detail(po_id: Long, supplier_id: String, price: String)

Expense_detail(1,"S00001","1000.0"), 
Expense_detail(2,"S00001","2000.0"), 
Expense_detail(3,"S00002","3,000.0"), 
Expense_detail(4,"S00003","4,000.0")
是否可以将其映射到以下
map
集合:

"S00001" -> ((1,2), "3000.0")
"S00002" -> ((3), "3000.0")
"S00003" -> ((4), "4000.0")

是,使用groupBymapValues

case class ExpenseDetail(poId: Long, supplierId: String, price: String)

val details : List[ExpenseDetail] = ...

details.
 groupBy( _.supplierId ).
 mapValues( details => ( (details.map(_.poId)), details.map(_.price.toInt).sum ))
这应该行得通。 我更改了命名以尊重Scala/Java最佳实践,使用CamelCase而不是snake_案例