5

intキーと文字列値を使用してハッシュテーブルを実装したいと思います。私は次のことを試しました:

import scala.collection.mutable.HashMap
val test_map = new HashMap[Int, String]
test_map += 10 -> "prog_1"
test_map += 20 -> "prog_2"
test_map += 25 -> "prog_3"
test_map += 15 -> "prog_4"
test_map += 10 -> "prog_8"

ただし、test_map(10)は「prog_1」、「prog_8」ではなく、単に「prog_8」です。このハッシュマップは複数の値を持つことができないようです。Scalaで複数値のハッシュテーブルを作成する簡単な方法はありますか?

4

2 に答える 2

11

MultiMap同じキーを持つ値の挿入順序を保持する必要がない場合は、を使用できます。

import scala.collection.mutable.{ HashMap, MultiMap, Set }

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

test.addBinding(10, "prog_1")
test.addBinding(20, "prog_2")
test.addBinding(25, "prog_3")
test.addBinding(15, "prog_4")
test.addBinding(10, "prog_8")
于 2012-06-12T21:16:42.327 に答える
3

MultiMap トレイトを使用して、標準の変更可能な HashMap を取得し、多値マップを処理するためのいくつかの便利なメソッドでそれを拡張します

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

val test_map = new HashMap[Int, Set[String]] with MultiMap[Int, String]
test_map.addBinding(10 ,"prog_1")
test_map.addBinding(20 ,"prog_2")
test_map.addBinding(25 ,"prog_3")
test_map.addBinding(15 ,"prog_4")
test_map.addBinding(10 ,"prog_8")
于 2012-06-12T21:17:39.683 に答える