Hallo,
MultiHash ist eine Hashtable, die pro Key mehrere Werte speichern kann (Eine normale Hashtable würde einen existierenden Wert einfach ersetzen). Bei einem MultiHash kann man nicht nur feststellen, ob ein Wert zu einem Schlüssel existiert, sondern auch wie viele. Man kann dann noch festlegen, ob identische Werte aufgenommen oder ignoriert werden sollen, ob die Einfüge-Reihenfolge der Werte eine Rolle spielt, usw.
Bei der Implementierung gibt es sicher mehrere Varianten (z.B. eine Liste/ein Set zum Schlüssel hinterlegen, wenn die Hashtable mit BucketHashing arbeitet, hätte man dann sowas wie "Bucket in a Bucket" ;-)).
Gruß,
Karl
P.S.:
Die unter dem Link gezeigte Version würde ich übrigens nicht als repräsentativ nehmen, da das eine etwas fragwürdige Mischung aus einer Hashtable- und einer LinkedList-Implementierung ist, die zudem noch das Verhalten eines Stack nachahmt (schon aufgefallen, dass es kein get(key) gibt?). Dann wird da noch Logik dazu gemixt (ignoreThis), die nicht in die Klasse hinein gehört und noch dazu nicht Plattformunabhängig ist (Lineterminator "\n"). Die Performance dürfte auch nicht berauschend sein.