A Ruby multimap implementation that also includes multiset and nested multimap implementations.
require 'multimap' map = Multimap.new map["a"] = 100 map["b"] = 200 map["a"] = 300 map["a"] # -> [100, 300] map["b"] # -> [200] map.keys # -> #<Multiset: {"a", "a", "b"}>