Skip to content

Instantly share code, notes, and snippets.

@outsideris
Created May 13, 2012 06:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save outsideris/2686592 to your computer and use it in GitHub Desktop.
Save outsideris/2686592 to your computer and use it in GitHub Desktop.
implement multimap in scala
package pis.chap22.multimap
import scala.collection.immutable.HashMap
class LasMultiMap[A, B] {
var mmap = new HashMap[A, List[B]]
def put(key:A, value:B) = {
if (mmap.contains(key)) {
mmap = mmap + ( (key, mmap.get(key).toList(0) ::: List(value) ))
} else {
mmap = mmap + ( (key, List(value)) )
}
}
def apply(key:A):List[B] = {
if (mmap.get(key).isEmpty) {
Nil
} else {
mmap.get(key).toList(0)
}
}
def update(key:A, value:B) = {
put(key, value)
}
def keySet() = {
mmap.keySet
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment