summaryrefslogtreecommitdiff
path: root/src/main/scala/forge/Util.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/forge/Util.scala')
-rw-r--r--src/main/scala/forge/Util.scala15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/main/scala/forge/Util.scala b/src/main/scala/forge/Util.scala
index 0a751da5..15d3e176 100644
--- a/src/main/scala/forge/Util.scala
+++ b/src/main/scala/forge/Util.scala
@@ -19,15 +19,16 @@ class MultiBiMap[K, V](){
valueToKey(v) = k
keyToValues(k) = v :: keyToValues.getOrElse(k, Nil)
}
- def removeAll(k: K): Seq[V] = {
- val vs = keyToValues(k)
- for(v <- vs){
- valueToKey.remove(v)
- }
- vs
+ def removeAll(k: K): Seq[V] = keyToValues.get(k) match {
+ case None => Nil
+ case Some(vs) =>
+ vs.foreach(valueToKey.remove)
+
+ keyToValues.remove(k)
+ vs
}
def addAll(k: K, vs: Seq[V]): Unit = {
- for(v <- vs) valueToKey(v) = k
+ vs.foreach(valueToKey.update(_, k))
keyToValues(k) = vs ++: keyToValues.getOrElse(k, Nil)
}
}