1

我想为单个长键提供不同类型的条目。

因此,鉴于我的密钥为 1,我希望有以下条目:

1、“狗”
1、3

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

谢谢!

4

1 回答 1

3

如果您希望地图包含两种类型的条目的混合,您可以使用Either. Either就像Option除了有Somevs.None你有Leftvs.之外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))
于 2012-05-15T14:39:20.410 回答