问题描述
我有一个Scala映射,将一个字符及其频率存储在一个字符串中,然后我需要获取该映射并将其所有内容保存到一个Seq中,例如:
map[Char,int] = map[T,Int](a -> 3,b-> 2,c -> 1) => Seq[Char] = Seq[Char](a,a,b,c)
任何人都对我如何完成此工作或如何遍历地图有任何建议
解决方法
遍历Map并循环直到char的频率,然后在循环内返回相同频率的char。
您可以执行以下操作。
val x = Map('a' -> 3,'b' -> 2,'c' -> 1)
x.flatMap {case(char,freq) =>
(1 to freq).map(_ => char)
}.toSeq