如何在scala中将一个地图转换为另一个地图

时间:2018-01-19 14:01:27

标签: scala scala-collections

我有一张将ids映射到整数的地图。我需要创建另一个映射,它将id映射到具有整数元组的特定类型(interval)。

val secondValue = 5
input: Map[Identifier, Integer]
val newInput: Map[Identifier, Interval] = input.map({
       case (x, d) => (x -> Interval(d, secondValue))
})

Interval在文件中定义,并在此处导入。此代码不起作用,因为newInput未更改。你能指导我做错的地方吗?

所需的输入类型是标识符 - > Integer和newInput是Identifier - > [整数,整数],但我得到了标识符 - >输入和newInput的整数。

1 个答案:

答案 0 :(得分:1)

由于您没有提供标识符和间隔,我创建了自己的标识符和间隔。正确初始化输入后,您的代码似乎正常工作:

case class Interval(x: Int, d: Int)
case class Identifier(x:Int)

val secondValue = 5
val input: Map[Identifier, Integer] = Map(Identifier(1) -> 10)

val newInput: Map[Identifier, Interval] = input.map({
  case (x, d) => 
    x -> Interval(d, secondValue)
})