3
在我正在進行的一個項目中,我經常發現自己在做下面的模式。斯卡拉groupBy + mapValues +映射回初始格式。有沒有更好的方法
給定一個案例類別X(a:A,b:B,c:C,d:Int),以及這樣的X的列表x:列表[X], 我想做數據庫等價的分組由a,b,c組成,同時用d進行求和,返回類型爲List [X]。
我通常最終做的是
xs.groupBy{case X(a,b,c,d) => (a,b,c)).mapValues(_.sum).map(((a,b,c),d)) => X(a,b,c,d))
我的問題,是有沒有更好/更清晰/更地道與任一階標準庫或Scalaz(這樣做的方式。如果d是任意類型的也許是Monoid實例)?
你可以發佈示例列表和示例輸出嗎?我不確定你想在這裏做什麼? –
稍後會做一下 –
你可能想看看這個scalaz的例子:http://stackoverflow.com/questions/7142514/in-scala-how-can-i-do-the-equivalent-of-an-sql -sum-and-group-by#answer-7168846 –