Die Java HashMap-Implementierung hat ein 'next'-Mitglied in der Entry-Klasse. Da ein neuer Wert für einen Schlüssel den alten Wert überschreibt, wird der 'nächste' Member in der Entry-Klasse verwendet.Die Java HashMap-Implementierung hat das 'next'-Member in der Entry-Klasse. Was nützt es?
static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
final int hash;
/**
* Creates new entry.
*/
Entry(int h, K k, V v, Entry<K,V> n) {
value = v;
next = n;
key = k;
hash = h;
}
.....
}
... weil jeder Bucket als verkettete Liste implementiert ist – Bohemian
Danke .. Ich verstehe, dass es eine verkettete Liste Implementierung ist. Aber wie können wir alle Werte von der Karte bekommen. Wir bekommen nur den zuletzt eingefügten für den gleichen Schlüssel. –
Es gibt nur einen Wert pro Schlüssel. Die alten Werte sind nicht in der Karte vorhanden; das wäre sinnlos. Aber Sie können die Sammlung von Werten (ein Wert pro Schlüssel, offensichtlich) mit 'HashMap.values ()' bekommen. –