it-swarm.com.de

Unterschied zwischen einer HashMap und einem ADT für Wörterbücher

Was ist der Unterschied zwischen einer Hash Map und einem ADT für Wörterbücher? Und wann man eins vor dem anderen bevorzugt. Für meine Programmieraufgabe hat mein Lehrer gebeten, eine von ihnen zu verwenden, aber ich sehe keinen Unterschied zwischen beiden. Das Programm soll mit einem großen Nein funktionieren. von Saiten. Irgendwelche Vorschläge?

59
ashokgelal

In Java sind sowohl die Klasse HashMap als auch die Klasse DictionaryImplementierungen des abstrakten Datentyps "Map". Abstrakte Datentypen sind nicht spezifisch für eine Programmiersprache und Map ADT kann auch als Hash, Dictionary oder assoziatives Array bezeichnet werden (andere unter http://en.wikipedia.org/wiki/Associative_array ). (Beachten Sie, dass wir zwischen der Dictionary-Klasse und der Dictionary-ADT unterscheiden.)

Die Variable Dictionaryclass wurde als veraltet markiert, daher sollten Sie sie nicht verwenden.

58
serenader

Dieser Stapelüberlaufpfosten leistet gute Arbeit und erklärt die wichtigsten Unterschiede:

Java Hashmap vs Hashtabelle

Beachten Sie, dass Hashtable lediglich eine Implementierung des Dictionary ADT ist. Beachten Sie auch, dass Java das Wörterbuch "obsolet" für "überholt" hält.

Die Tatsache, dass Hashtable synchronisiert ist, ist für die meisten Anwendungen nicht viel wert. Verwenden Sie HashMap.

18
Jim Nelson

In Java implementiert die HashMap die Map-Schnittstelle, das Dictionary jedoch nicht. Dies macht das Dictionary überflüssig (gemäß den API-Dokumenten). Das heißt, beide haben eine ähnliche Funktion, also haben Sie Recht, dass sie sich sehr ähneln ... Eine HashMap ist eine Art Wörterbuch.

Es wird jedoch empfohlen, die HashMap zu verwenden.

8

Map ist eine Schnittstelle für ein ADT in Java, die gleiche allgemeine sprachenunabhängige Datenstruktur zum Verwalten von <key, value> -Paaren.

Dictionary (keine Implementierung von Map) ist eine abstrakte Klasse, die zu demselben Zweck bereits in JDK 1.0 eingeführt wurde. Die einzige Unterklasse ist Hashtable, die Map selbst implementiert. Trotzdem ist die Dictionary-Klasse jetzt veraltet und Sie können es vergessen.

Es gibt Unterschiede zwischen den Funktionsmitgliedern von Map und Dictionary, jedoch können Sie den Unterschied zwischen HashMap und Hashtable als nützlicher empfinden. hier Sie können die Unterschiede finden.

0
masec