2013-05-05 99 views
0

我有一个元素地图,其中每个元素都有一个List作为其值Convert map to get size of list in each element

例如,

Map(a -> List(a, a), b -> List(b, b), l -> List(l, l, l), h -> List(h)

我想这种转换,使每个值列表例如大小

Map(a -> 2, b -> 2, l -> 3, h -> 1

我尝试:

myMap.map(x => x.size()) 

这给...

error: value size is not a member of (Char, List[Char]) 

任何提示,我该怎么做呢?

谢谢。

回答

3

快速解决方案:myMap.mapValues(x => x.size)。标准map映射在键值对上。

+0

我不得不做myMap.mapValues(x => x.size)size()给Int不带参数不知道为什么。 – 2013-05-05 20:36:32

+0

@MoreThanFive对,我纠正了我的答案。 'size'是一个没有参数列表的方法,所以你不能把它称为给出任何参数列表(甚至是空的)。这是因为scala区分了像def size:Int和def size():Int'这样的方法。 – ghik 2013-05-05 20:40:19