ハッシュマップと辞書ADTの違いは何ですか。そして、いつ別のものを好むか。プログラミングの課題では、インストラクターがそのうちの1つを使用するように求めましたが、両者の間に違いは見当たりません。プログラムは巨大なノーで動作するはずです。文字列の。助言がありますか?
Javaの観点では、クラスHashMap
とクラスDictionary
は両方とも、「Map」抽象データのimplementationsです。タイプ。抽象データ型は特定のプログラミング言語に固有ではなく、Map ADTはハッシュ、辞書、または連想配列( http://en.wikipedia.org/wikiのその他)としても知られています/ Associative_array )。 (Dictionary
クラスと辞書ADTを区別していることに注意してください。)
Dictionary
classは廃止とマークされているため、使用しないことが最善です。
このStack Overflowの投稿は、主な違いを説明するのに適しています。
Hashtableは、単に辞書ADTの実装であることに注意してください。また、Javaは辞書 "obsolete" と見なされることに注意してください。
Hashtableが同期されているという事実は、ほとんどの用途であまり買われません。 HashMapを使用します。
In Java HashMapはMapインターフェースを実装しますが、Dictionaryは実装しません。これにより、Dictionaryは廃止されます(APIのドキュメントによる)。 HashMapは辞書の一種です。
ただし、HashMapを使用することをお勧めします。
MapはJavaのADTのインターフェースであり、<key、value>ペアを維持するための同じ一般的な言語に依存しないデータ構造であり、=で導入されていますJava 1.2。
辞書(Mapの実装ではない)は、JDK 1.0で以前に導入されたのと同じ目的の抽象クラスです。唯一のサブクラスはHashtableであり、それ自体がMapを実装しています。それにもかかわらず、Dictionaryクラスは現在廃止されており、忘れてしまうかもしれません。
MapとDictionaryの関数メンバーには違いがありますが、HashMapとHashtableの違いの方が役立つ場合があります。 ここ 違いを見つけることができます。