HashMapのやHashtableのは同じ原則、同じ機能を実装し、基本的な構造は、ハッシュテーブル、クエリ速度は、多くの場合、相互運用可能であることができます
次の2つの主な違いはあります
図1に示すように、ハッシュテーブルは、以前のJDK提供インターフェースである、ハッシュマップは、JDKによって提供されるインタフェースの新バージョンであります
2、ハッシュテーブルクラスは辞書を継承し、HashMapのは、Mapインタフェースを実装します
3、Hashtableのスレッドセーフ、HashMapの非スレッドセーフ
図4に示すように、ハッシュテーブルはnull値を許さ、ハッシュマップはヌル値を許容します
HashSetのとHashMapの違い
1、HashSetの底部は、HashMapを使用して達成されます。HashSetのは、ほとんどのHashSetのメソッドは、メソッド呼び出しのHashMapによって達成され、実装が容易であるので、本質的に同じの実現にHashSetのとHashMapの2つのコレクション。
2は、HashMapのキーはオブジェクトHashSetの中に配置され、値はObject型です。
図3に示すように、追加のメソッドHashSetのを呼び出すとき、実際には、対象ライン(キーと値のペア)の添加であり、行のキーは行の値は、Object型の定数である、にHashSetのハッシュマップに追加されます