我如何迭代到Scala映射以将内容保存在Seq中?

问题描述

我有一个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