2014-11-03 147 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

相關問題