2014-11-03 84 views
-1

所以一个地图,我有字符的列表,我要创建它说有多少的各种实例化默认

(List(a,a,a,a,b,b) => List ((a,4), (b,3)) 

我想创建一个地图将列出每个角色的列表先为1

((a->1), (a->1), (a->1), (a->1), (b->1), (b->1)) 

然后用group by + tolist返回最后的列表。问题在于创建地图需要使用该语言的PHD。

我试图

val m = xs.foldLeft(Map[Char,Int]()){c => c->1} 

不工作。

xs map (x=> x-> 1) toMap 

哪些编译,但我不能用这张地图做任何事情后。

xs.toMap(x,1) 哪一个也不行。

有人能告诉我应该怎么做吗?

回答

4

您可以使用groupBy做分组,然后找到每个组的计数:

list.groupBy(identity).mapValues(_.length) 
+1

你可以只用'l.groupBy(身份)'(而不是'l.groupBy(身份_) ')。 – Marth 2014-11-03 12:39:16

+1

@Marth - 谢谢,修正。 – Lee 2014-11-03 12:46:43

相关问题