1

1 つの長いキーに対してさまざまな種類のエントリを作成したいと考えています。

したがって、キーが 1 の場合、次のエントリが必要です。

1、「犬」
1、3

まず、String 型と Int 型の両方のエントリを含めることができますか? その場合、エントリを追加してから "dog" エントリのみにアクセスする方法を示す、MultiMap が混在する HashMap の例を見ることができますか?

ありがとう!

4

1 に答える 1

3

マップに 2 種類のエントリを混在させたい場合は、Either. vs.を持つ代わりにvs.を持つことを除いてEither似ています。OptionSomeNoneLeftRight

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 に答える