From: Alexis Laferrière Date: Tue, 16 Dec 2014 14:14:09 +0000 (-0500) Subject: lib/more_collections: add `remove_at` to `HashMap[23]` X-Git-Tag: v0.7.1~5^2~3 X-Git-Url: http://nitlanguage.org lib/more_collections: add `remove_at` to `HashMap[23]` Signed-off-by: Alexis Laferrière --- diff --git a/lib/more_collections.nit b/lib/more_collections.nit index 6396ec2..ecbbf9f 100644 --- a/lib/more_collections.nit +++ b/lib/more_collections.nit @@ -86,6 +86,17 @@ class HashMap2[K1, K2, V] end level2[k2] = v end + + # Remove the item at `k1` and `k2` + fun remove_at(k1: K1, k2: K2) + do + var level1 = self.level1 + + if not level1.has_key(k1) then return + + var level2 = level1[k1] + level2.keys.remove(k2) + end end # Simple way to store an `HashMap[K1, HashMap[K2, HashMap[K3, V]]]` @@ -123,6 +134,17 @@ class HashMap3[K1, K2, K3, V] end level2[k2, k3] = v end + + # Remove the item at `k1`, `k2` and `k3` + fun remove_at(k1: K1, k2: K2, k3: K3) + do + var level1 = self.level1 + + if not level1.has_key(k1) then return + + var level2 = level1[k1] + level2.remove_at(k2, k3) + end end # A map with a default value.