scala MultiMap的示例,其中条目类型不同

时间:2012-05-15 13:36:38

标签: scala scala-collections multimap

我想为单个Long键设置不同类型的条目。

所以,鉴于我有一把钥匙,我希望有以下条目:

1,“狗”
1,3,

首先是可以包含String和Int类型的条目,如果是这样,我是否可以看到一个混合了MultiMap的HashMap示例,显示如何添加条目然后只访问“dog”条目?

谢谢!

1 个答案:

答案 0 :(得分:4)

如果您希望地图包含两种类型的条目,您可以使用EitherEitherOption类似,只是SomeNone取代Left而不是Right

import scala.collection.mutable.HashMap
import scala.collection.mutable.Set
import scala.collection.mutable.MultiMap

val m = new HashMap[Int, Set[Either[Int, String]]] with MultiMap[Int, Either[Int, String]]

m.addBinding(1, Right("dog"))
m.addBinding(1, Left(3))

m(1).collect{ case Right(s) => s }             // Set(dog)
m.mapValues(_.collect{ case Right(s) => s })   // Map(1 -> Set(dog))