2012-11-10 30 views
7

Mögliche Duplizieren Hashmap:
Differences between HashMap and Hashtable?Wie unterscheidet sich Hashtable

ich in anderen Code verwendet Hash-Tabellen und Hash-Karten gesehen habe, aber sie schauen, wie sie das gleiche tun. Gibt es einen Unterschied zwischen ihnen? Welchen sollte ich in meinem Code verwenden?

+0

Ja, der Hauptunterschied ist, dass Hashtable synchronisiert ist, und HashMap nicht. Sie haben auch unterschiedliche Superklassenhierarchien. (FWIW, bei einigen Gelegenheiten habe ich ziemlich schwerwiegende Fehler in großen kommerziellen Apps gesehen, weil HashMap in einer gleichzeitigen Umgebung verwendet wurde.) –

+0

BTW, es ist "HashMap" und "Hashtable". Beachten Sie die Großschreibung. –

+1

Haben Sie darüber nachgedacht, den Javadoc zu lesen? – EJP

Antwort

5

java.util.Hashtable Methoden , synchronisiert java.util.HashMap Methoden nicht. Wenn Sie Hashtable verwenden, wird es einen Leistungstreffer geben als kein zwei Threads wird in der Lage sein, auf seine Methoden zur gleichen Zeit zuzugreifen. Wenn Sie sich interessieren Thread Sicherheit in Ihrer App Hashtable ist der Weg zu gehen. Wenn Sie sich nicht für Thread-Sicherheit interessieren Hashmap ist der Weg zu gehen, da es effizienter ist als Hashtable. Auch java.util.Hashtable erlaubt keine Null-Schlüssel, wobei java.util.HashMap einen Null-Schlüssel erlaubt.

4

Hashtabelle ist synchronisiert, wo HashMap nicht ist. Das bedeutet, wenn Sie nur einen einzigen Thread verwenden, der auf die Daten zugreift, verwenden Sie eine HashMap, andernfalls verwenden Sie eine Hashtable.

+0

sein Hashtable, notieren Sie das 't' :) – PermGenError

+0

@GanGnaMStYleOverFlowErroR wow, nie bemerkt, haha ​​=) –

0

HashTable Dont't null Tasten ermöglichen dem als hashmap ermöglicht eine null Schlüssel

Verwandte Themen