如何编写一个函数来获取一个map[char,int]作为输入并生成一个set[case class]?

nwlls2ji  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(237)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

10天前关门了。
改进这个问题
找到此stepik任务,但不知道要做什么:
写一个函数,它获取一个map[char,int]作为输入,并生成一个集合[letteree](letteree是下面的case类),在这个集合中,我们从每个(c,w)map条目生成一个letterlevel(c,w),然后将它放入所述集合[letteree]。

trait LetterTree {
  def weight: Int
}

case class LetterLevel(ch: Char, weight: Int) extends LetterTree

object TreeBuild extends App {
  def TreeSetBuild(freqs: Map[Char,Int]): Set[LetterTree] = ???```
}
rqmkfv5c

rqmkfv5c1#

你可以用 tupled 建造 LetterLevel 示例的元组元素 Map :

object TreeBuild extends App {
  def treeSetBuild(freqs: Map[Char,Int]): Set[LetterTree] =
    freqs.map(LetterLevel.tupled).toSet
}

TreeBuild.treeSetBuild(Map('a'->1, 'b'->2, 'c'->3))
// res1: Set[LetterTree] = Set(LetterLevel(a,1), LetterLevel(b,2), LetterLevel(c,3))

相关问题