我查看this page,了解如何按原始列表中出现的项目计数的降序创建地图项目列表。我必须为一堆不同类型的列表执行此操作:String
,Int
,Short
,Float
,Byte
,...
我可以写:
def freqA(a: List[String]): ListMap[String, Int] =
ListMap(a.groupBy(i => i).mapValues(_.size).toSeq.sortWith(_._2 > _._2):_*)
def freqB(a: List[Int]): ListMap[Int, Int] =
ListMap(a.groupBy(i => i).mapValues(_.size).toSeq.sortWith(_._2 > _._2):_*)
...
但我只想用类型T
写一次。我以为我记得如何做到这一点,但我正在掏空。我希望这对某人来说很容易。
答案 0 :(得分:0)
没关系,我明白了。谢谢你斯卡拉星期五下午没那么努力:
def freqB[T](a: List[T]): ListMap[T, Int] =
ListMap[T, Int](a.groupBy(i => i).mapValues(_.size).toSeq.sortWith(_._2 > _._2):_*)