【发布时间】:2015-04-22 07:20:52
【问题描述】:
当谈到 scala 时,我仍在学习期间,并面临一些我想解决的问题。
我目前拥有的是 X 类型的项目的 Seq。现在我想创建一个函数,该函数返回一个数字映射,该映射与在该原始 seq 上出现一定时间的项目集映射。
这是我想做的小例子:
val exampleSeq[X]: Seq = [a, b, d, d, c, b, d]
val exampleSeq2[x]: Seq = [a, a, a, c, c, b, b, c]
myMagicalFunction(exampleSeq) returns Map[1 -> Set[a, c], 2 -> Set[b], 3 -> Set[d]]
myMagicalFunction(exampleSeq2) returns Map[2 -> Set[b], 3 -> Set[a, c]]
到目前为止,我已经能够创建一个函数,将项目与其出现的时间进行映射:
function[X](seq: Seq[X]) = seq.groupBy(item => item).mapValues(_.size)
从那个返回我的 exampleSeq 是
Map(a -> 1, b -> 2, c -> 1, d -> 3)
谢谢你的回答:)
【问题讨论】:
-
非常感谢您的每一个回答。我想我现在能够解决它:)
-
我不明白的是问题的标题,排序是怎么回事?这个问题更多地与计数有关。为了后代,也许使用更具体的标题?