差HashMapとハッシュテーブル?
-
09-06-2019 - |
解決
あの違い HashMap
や Hashtable
Java:
Hashtable
は 同期, はHashMap
いません。このHashMap
より良い外ネジ付きアプリのunsynchronized物はどのように絡んでいるのかを調べに同期します。Hashtable
できないnull
キーや値がある。HashMap
できますnull
キーの数null
値です。一HashMapのサブクラスです
LinkedHashMap
, ので、その場合におい予測可能な繰り返し順序で挿入順のデフォルト)、簡単にスワップのHashMap
のためのLinkedHashMap
.このなりやすく場合ございますクリアできましたHashtable
.
年同期の問題を解決すされています。 HashMap
.場合に同期が問題になるので、見 ConcurrentHashMap
.
他のヒント
ことに注意してくださを多くの回答状態ハッシュテーブルは同期. 実際に本を購入す。 同期のアクセス用メソッド/mutator方法を停止二つのスレッドの追加または削除をマップから同時に、現実の世界ではしばしば必要な追加synchronisation.
非常に共通ムは"チェックして"すなわち見てのエントリーの Map
, 追加しない場合はすでに存在しています。これはその原子操作のどちらを使用するにしても Hashtable
または HashMap
.
は、同様に同期 HashMap
を取得できます:
Collections.synchronizedMap(myMap);
が正しく実装するロジックが必要 追加synchronisation 形式:
synchronized(myMap) {
if (!myMap.containsKey("tomato"))
myMap.put("tomato", "red");
}
でも繰り返し処理を行は、 Hashtable
's"エントリー(または HashMap
得られた Collections.synchronizedMap
ないスレッドに対して安全なもガードの Map
からの変更により追加に同期します。
の実装を ConcurrentMap
インタフェース(例えば ConcurrentHashMap
)の解決の一部を含め スレッドに対して安全チェックイン後-法意味論 など
ConcurrentMap.putIfAbsent(key, value);
Hashtable
であるレガシーコードです。あ約 Hashtable
ることができないのをベースに制御を行っています。 HashMap
または微の HashMap
, ので、新しいコードでは、と思いますか他の正当化に戻る Hashtable
.
この質問は、よく聞かれる質問インタビューで確認候補を理解し正しい使い方のコレクションクラスの覚の代替的解決可能です。
- のHashMapクラスではほぼ相当するハッシュテーブルを除き、その非同期および許可null.(HashMapでnull値としてのキーと値はハッシュテーブルすることを認めていませんnull).
- HashMapとを保証するものではありませんの地図って一定です。
- HashMapは非同期にはハッシュテーブルは同期化されます。
- 反復子は、HashMapは安全なの列挙子のハッシュテーブルは、スロー ConcurrentModificationException場合、その他のスレッドの変数を変更する機能を提供する地図の構造を追加したり削除したりし他の要素の反復子自体のremove()メソッドがあります。この保証動作および保存することができまJVMにベストです。
注一部の重要な条件
- 同期とは一つだけのスレッドの変更ができるハッシュテーブルでのワンポイント。基本的には、このスレッドを行う前に更新されるハッシュテーブルをロックを取得するオブジェクトを待つロックまでお問い合わせください。
- 安全では、コンテキストからの反復子.場合、反復子が作成されるcollectionオブジェクトやその他のスレッドを変更するcollectionオブジェクト"構造"、同時変更の例外がスローされます。でほかのスレッドが呼び出し"の設定方法"に来ませんの変更はコレクション"の構造".ただし、前の呼び出し"セット"は、コレクションは変更された構造,"IllegalArgumentException"スローされます。
- 構造的に変更と削除や挿入する要素が効果的に体制に変更。
HashMapを同期化できるよ
Map m = Collections.synchronizeMap(hashMap);
地図コレクションビューの代わりにサービスへのリンクを繰り返し 由列挙オブジェクト。コレクションビューションやクライアントから依頼さ 表現力のインタフェースとしては、後述す。地図るときに対して繰り返し処理を実行するキーの値、またはサーバ上にkey-value形式で格納;ハッシュテーブルを提供しない第三のオプションです。地図を安全 除去作品の中で繰り返し処理;ハッシュテーブルかとなった。最後に、地図の修正マイナー不足のハッシュテーブルインタフェース。ハッシュテーブルはと呼ばれる手法で含まれる場合にtrueを返します ハッシュテーブルを含む指定された値にします。指定した名前、す 方法がある場合はtrueを返しますハッシュテーブルが含まれる指定された鍵が のキーが最初にアクセス機構のためのハッシュテーブル.の地図 インタ消このソースの混乱により名称変更の方法 containsValue.また、このインタフェースの整合性— containsValue緯containsKey.
HashMap
:の実装を Map
インタフェース使用のハッシュコードインデックスは、配列になります。Hashtable
:こんにちは,1998呼び出されます。欲しいので、彼らのコレクションAPIです。
真剣にもいないほうがより離れて Hashtable
ます。シングル-ネジ付きアプリも必要としない別のオーバーヘッドsynchronisation.性の高いアプリを同時に被害妄想synchronisationが飢餓、デッドロック、または不要なゴミ収集の一時停止.のようにTim Howland指摘の通り、利用する場合もあるでしょう ConcurrentHashMap
です。
注意して HashTable
したレガシィ最後のトークセッションでは、Java Collections Framework(JCF)を導入した改修を実施する Map
インタフェース。うにした Vector
や Stack
.
そのため、必ずらに新しいコードであり、常により良い代替のJCF していたのを指摘しなければなりません。
こちらは Java集チートシート がございます。通知の灰色のブロックのクラスのハッシュテーブル、ベクトルおよびスタックです。
るもののほか、izbと HashMap
でnull値は、 Hashtable
ではできません。
ることにも注意が Hashtable
を拡張し Dictionary
クラスとしての Javadocs 状態は過去のもとに置き換えられ Map
インタフェース。
があり、多くの答えて掲載しています。私の追加からポイントを総括します。
HashMap
や Hashtable
の両方を格納する場合に使用される データのキーと値形.両方の使用のハッシュの技術を保存す。もと違うことがたくさんありHashMapとハッシュテーブルの授業とは以下のとおりです。****
HashMap
HashMap
は同期化されます。ではないスレッドに対して安全でない、と多くのスレッド適切な同期のコードです。HashMap
す一方がnullキーの複数null値です。HashMap
新しいクラスに導入したJDK1.2.HashMap
が速い。- そのまま生かすことができま
HashMap
として同期呼び出すコード
Map m = Collections.synchronizedMap(HashMap);
HashMap
が往来するIterator.- 反復子に
HashMap
はなます。 HashMap
継承しAbstractMapクラスです。
ハッシュテーブル
Hashtable
は同期化されます。このスレッド-安全-共有できる多くのスレッド)。Hashtable
のできない。nullのキーや値とします。Hashtable
は従来のクラスです。Hashtable
が遅くなります。Hashtable
が内部的に同期できないunsynchronized.Hashtable
が往来査は、Iterator.- 列挙子に
Hashtable
はいない。 Hashtable
を継承した辞書クラスです。
ご紹介します。で比較し、異なるデータ構造とHashMapとハッシュテーブル.比較には、高精度、明確にわかりやすくお話いただいた。
Hashtable
類似の HashMap
と同様のインタフェース。でのご利用をお勧めします HashMap
, ない限り、必要な支援のためのレガシーアプリケーションは必要なものsynchronisationとして Hashtables
方法は同期.う場合としないマルチスレッド HashMaps
スケジュールでベット。
のもう一つの重要な違いはハッシュテーブル、hashmapは、反復子のHashMapが不可能なので、フェイルファストを列挙子のハッシュテーブルは、スロー ConcurrentModificationException場合、その他のスレッドの変数を変更する機能を提供する地図の構造を追加したり削除したりし他の要素の反復子自体のremove()メソッドがあります。この保証動作および保存することができまJVMに最高です。"
私のソース: http://javarevisited.blogspot.com/2010/10/difference-between-hashmap-and.html
横すべてのその他の重要な側面でであることが明らかにされた。レーション、コレクションAPI(地図インタフェース)で修正が施されたすべての時間に準拠して、"最新の最大の"追加Javaの仕様
たとえば、Java5地図で繰り返し処理:
for (Elem elem : map.keys()) {
elem.doSth();
}
versusのハッシュテーブルのアプローチ:
for (Enumeration en = htable.keys(); en.hasMoreElements(); ) {
Elem elem = (Elem) en.nextElement();
elem.doSth();
}
Java1.8お約束できる構築するとともにアクセスHashMapsのような古き良きスクリプト言語:
Map<String,Integer> map = { "orange" : 12, "apples" : 15 };
map["apples"];
更新: れない土地1.8...:(
ハッシュテーブル 同期された場合、自然材料以外を使用しないことで単一のスレッドが使用でき HashMap, であるunsynchronizedバージョン。Unsynchronized物がもう少しperformant.この場合、複数のスレッドにアクセスHashMapが同時に少なくとも一つの構造的にマップを変更す動するのです。ユ巻unsynchronized図同期を利用した:
Map m = Collections.synchronizedMap(new HashMap(...));
ハッシュテーブルなどを含めないでくださいnull以外のオブジェクトとしてのキーと値です。HashMapできるとして展開しているのがnullキーやnull値です。
Iteratorの地図は不可能なので、フェイルファストの場合、マップが構造的に変更を加えた後に、反復子を作成し、いずれの方法を使ってもよる場合を除き、反復子自体のremove法の反復子をスローします、
ConcurrentModificationException
.このように同時に変更、反復子はきれいにな危険にさら任意ですが、非決定的な行動を予測できない時点において予測します。 は の列挙は返されたハッシュテーブルのキーと要素法はいない。ハッシュテーブルは、HashMapに Java Collections Framework (以降のJava2プラットフォームv1.2では、ハッシュテーブルした改修を実施する地図のインターフェースを
ハッシュテーブルとレガシーコードの書類のご利用 ConcurrentHashMap のハッシュテーブルの場合、スレッドを安全に高い並行実施が望まれる。
HashMapを保証するものではありませんの順序で要素を返します。のためのハッシュテーブルうことなんでしょうけれど同じだが、私は全くないからressourceが明記されている。
HashMap
や Hashtable
重要なアルゴリズムの違いです。ついて述べたように、このメソッドは以前ようんです。 HashMap
を構築し、ハッシュテーブルと電源の二つのサイズ増加が動的になるためのもつ要素(衝突)バケットまでの撹拌の要素も一般要素です。しかし、 Hashtable
の実装により、より細かく制御のハッシュのかを知っている場合を確認することができまわることは可能では、テーブルサイズを使用例最も近い素数を値のドメインのサイズは、これ以上のパフォーマンスをHashMapる以下衝突用の場合があります。
から明らかな違いてこの問題のハッシュテーブルとしての"マニュアル車"車いよい制御が可能なので、ハッシュ、HashMapとしての"自動車"カウンターパートと一般的に行う。
ハッシュテーブルは同期はHashMapい分けるどれがいいですか?このハッシュテーブル以下のHashmap.
外ネジ付きアプリを使用HashMapてその同意可能です。
に基づく情報 こちらの, いくHashMap.私の最大の特長は、Java防止できますから改良したものでな繰り返し処理を行う場合を除き、いiterator.
A Collection
—とも呼ばれるコンテナにおけるオブジェクト群に複数の要素を一つのユニットです。 Collection
sを格納する場合に使用される探索の操作を通して集計データです。九大コレクションの枠組み W 統一のための建築を代表す操作ョンにします。
の HashMap
JDK1.2
およびハッシュテーブル JDK1.0
, とを表すのに使用されるグループのオブジェクトで表されることで <Key, Value>
対になっています。各 <Key, Value>
ペアと呼ばれ Entry
オブジェクトです。の収集に応募すると、オブジェクトの HashMap
や Hashtable
.キーコレクションの中で一意でなければならないは特徴的です。[そのまま使用される検索、マップされた値を特定の鍵となる。値のコレクションの中で重複しています。]
« スーパークラス、レガシー-収集枠組み員
ハッシュテーブルは従来のクラス紹介 JDK1.0
, であるサブクラスの辞書クラスです。から JDK1.2
ハッシュテーブルは再生を実施 Mapインタフェース を会員の枠組みHashMapのJava集枠組みから始め、その導入 JDK1.2
.HashMapのサブクラスAbstractMapのクラスです。
public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable { ... }
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { ... }
« 初期容量と負荷係数
の容量が数のバケットのハッシュテーブルの初期容量は、単に、能力、時間のハッシュテーブルが作成されます。なお、ハッシュテーブルが開:の場合"hash
collision
"シバケット店舗で複数の作品は、検索される。"負荷係数"は、測定の完全ハッシュテーブル前に容量が自動的に増えました。
HashMapを構築しま空のハッシュテーブルのデフォルトの初期容量 (16) デフォルトの負荷係数(0.75).場としてのハッシュテーブルを構築しますの空のハッシュテーブルのデフォルトの初期容量 (11) および負荷係数/入比率(0.75).
« 構造変更の場合はハッシュの衝突
HashMap
, Hashtable
の場合はハッシュの衝突れている地図のエントリにリンクのリストが表示されます。 Java8からのために HashMap
場合はハッシュバケットがある閾値を超えて、バケツとスイッチから linked list of entries to a balanced tree
.向上に向けた最悪の場合の性能をO(n)時間-O(log n).を変換する、リストバイナリーツリーのハッシュコードを使用して分岐します。がある場合は二つの異なるュー内のバケット、とき、右側のツリーをはじめとするすべてにおいて理由があります。そのュー内が等しい HashMap
このキーと比較し、比較の方向性を明確にし、具体化する、いくつかの秩序を維持できる。では、良い練習ができるの鍵 HashMap
同.追加応募の場合バケットサイズに達する TREEIFY_THRESHOLD = 8
変換リンクリストの作品のバランスの取れたツリーで、取り外し作品以内 TREEIFY_THRESHOLD
ほとんどの UNTREEIFY_THRESHOLD = 6
まreconvertバランスツリーへのリンクリストの作品の応募がありました。 Java8SRC, stackpost
« コレクションビューの反復が速く、安全
+--------------------+-----------+-------------+
| | Iterator | Enumeration |
+--------------------+-----------+-------------+
| Hashtable | fail-fast | safe |
+--------------------+-----------+-------------+
| HashMap | fail-fast | fail-fast |
+--------------------+-----------+-------------+
| ConcurrentHashMap | safe | safe |
+--------------------+-----------+-------------+
Iterator
はなます。ん。eですConcurrentModificationExceptionがコレクションが変更された繰り返し処理以外のもの自体のremove()メソッドがあります。場として Enumeration
は安全です。ない例外をスローした場合、コレクションが変更された繰り返し処理.
によるJava APIドキュメント、反復子が常に優先の一覧取得を行います。
注意: の機能を列挙インタフェースが重複しての反復子によりインターフェース。また、反復子の追加オプションがremoveオペレーション、短い方法です。新しい実装を避けるこ反復子を返ザ一覧の取得を行います。
に Java5を導入しConcurrentMapェ: ConcurrentHashMap
-高兼職の状況、高性能 ConcurrentMap
実施の背景にハッシュテーブル。この実装ではないブロックが検索できるクライアントに選択し、並行処理レベルにしました。であるものに対してのドロ Hashtable
:を実施するほか、 ConcurrentMap
, かつての"遺産"の方法に特有の Hashtable
.
各
HashMapEntry
s値は 揮発性 実微粒子整合性のために競合している変更やその後の読み込み;それぞ反映して最終更新反復子は、列挙はまず安全を反映した状態にある時点からの創造の反復子/列挙;この同時読み込みおよび修正のコスト削減の一貫性を追求します。いConcurrentModificationExceptionをスローしません.しかし、反復子に使用できるよう設計される一のスレッドです。
のように
Hashtable
異なHashMap
, このクラスは、許さないnullとして使用するキー値です。
public static void main(String[] args) {
//HashMap<String, Integer> hash = new HashMap<String, Integer>();
Hashtable<String, Integer> hash = new Hashtable<String, Integer>();
//ConcurrentHashMap<String, Integer> hash = new ConcurrentHashMap<>();
new Thread() {
@Override public void run() {
try {
for (int i = 10; i < 20; i++) {
sleepThread(1);
System.out.println("T1 :- Key"+i);
hash.put("Key"+i, i);
}
System.out.println( System.identityHashCode( hash ) );
} catch ( Exception e ) {
e.printStackTrace();
}
}
}.start();
new Thread() {
@Override public void run() {
try {
sleepThread(5);
// ConcurrentHashMap traverse using Iterator, Enumeration is Fail-Safe.
// Hashtable traverse using Enumeration is Fail-Safe, Iterator is Fail-Fast.
for (Enumeration<String> e = hash.keys(); e.hasMoreElements(); ) {
sleepThread(1);
System.out.println("T2 : "+ e.nextElement());
}
// HashMap traverse using Iterator, Enumeration is Fail-Fast.
/*
for (Iterator< Entry<String, Integer> > it = hash.entrySet().iterator(); it.hasNext(); ) {
sleepThread(1);
System.out.println("T2 : "+ it.next());
// ConcurrentModificationException at java.util.Hashtable$Enumerator.next
}
*/
/*
Set< Entry<String, Integer> > entrySet = hash.entrySet();
Iterator< Entry<String, Integer> > it = entrySet.iterator();
Enumeration<Entry<String, Integer>> entryEnumeration = Collections.enumeration( entrySet );
while( entryEnumeration.hasMoreElements() ) {
sleepThread(1);
Entry<String, Integer> nextElement = entryEnumeration.nextElement();
System.out.println("T2 : "+ nextElement.getKey() +" : "+ nextElement.getValue() );
//java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextNode
// at java.util.HashMap$EntryIterator.next
// at java.util.Collections$3.nextElement
}
*/
} catch ( Exception e ) {
e.printStackTrace();
}
}
}.start();
Map<String, String> unmodifiableMap = Collections.unmodifiableMap( map );
try {
unmodifiableMap.put("key4", "unmodifiableMap");
} catch (java.lang.UnsupportedOperationException e) {
System.err.println("UnsupportedOperationException : "+ e.getMessage() );
}
}
static void sleepThread( int sec ) {
try {
Thread.sleep( 1000 * sec );
} catch (InterruptedException e) {
e.printStackTrace();
}
}
« NullキーやNull値
HashMap
できる最大のものは、nullキーの数をnull値です。場として Hashtable
なもnullキーやnull値の場合、キーまたは値がnullを返しますNullPointerException。 例
« 同期スレッドに対して安全
Hashtable
内部で同期化されます。そのため、非常に安全に使用 Hashtable
マネジ付き願います。場として HashMap
は内部的に同期化されます。受けることができる主題ではない安全な使用 HashMap
マルチレールを外部同期します。できる外部同期 HashMap
を使用 Collections.synchronizedMap()
方法。
« 性能
として Hashtable
内部で同期するため、 Hashtable
やや遅の HashMap
.
@見
のためのネジ付きアプリにできることが多く離れConcurrentHashMap-によって異なります。
1.Hashmap
や HashTable
両店。
2.Hashmap
での複数のキーとして null
. Hashtable
できない店舗 null
.
3.HashMap
は同期化されませんが Hashtable
は同期化されます。
4.HashMap
同期が可能 Collection.SyncronizedMap(map)
Map hashmap = new HashMap();
Map map = Collections.SyncronizedMap(hashmap);
ほかの違いは既に述べたようにできることからJava8, HashMap
動的に置き換えはノード(リンクリスト)で利用するバケツTreeNodes(赤-黒ツリーにも高いハッシュの衝突が存在する場合、最悪の場合 検索した場合 は
O(log(n)) HashMap
Vs O(n) Hashtable
.
*上記の改善が適用されていないため Hashtable
だけ HashMap
, LinkedHashMap
, は、 ConcurrentHashMap
.
ちなみに、現在、
TREEIFY_THRESHOLD = 8
:の場合バケットするとき表示されている8ノードは、リンクリストに変換するバランスです。UNTREEIFY_THRESHOLD = 6
:がバケットが小さすぎによる除去またはサイズ変更)のツリーへの変換リンク一覧です。
5つの基本的な差とのハッシュテーブルやHashMaps.
- マップで繰り返し処理を実行し、検索キーの値は、サーバ上にkey-value形式で格納して、ハッシュテーブルがないこと。
- にハッシュテーブル機能がありますcontains()は非常に混乱を利用します。その意味で少し逸れ.るかどうかも含まれキーまたは含む。厳しました。同じ地図をContainsKey()のContainsValue()関数は、ある意味では、非常にわかりやすい。
- にhashmapを除去することができ要素を繰り返し処理,無事です。ることができないに超えるセットはハッシュテーブル.
- 超えるセットはハッシュテーブルにデフォルトと同期でも使用でき、複数のスレッドです。場としてHashMapsは同期化されませんよ、デフォルトで使用することが可能ですのみで単一のねじになります。ができ換HashMapを同期用回収utilクラスのsynchronizedMap(地図m)機能を搭載しています。
- ハッシュテーブル許さないのではないでしょうnullキーやnull値です。場としてのHashMapでnullの場合、複数のnull値です。
私の小さな貢献:
最初の、そして最も重要な違
Hashtable
やHashMap
は、HashMap
はスレッドセーフではありませんがHashtable
あるスレッドを安全に収集します。第二重要な差
Hashtable
やHashMap
業績てHashMap
は同期化されませんのでどのように絡んでいるのかを調べHashtable
.第三差
Hashtable
vsHashMap
であることHashtable
は旧クラスの使用ConcurrentHashMap
場Hashtable
Java.
ハッシュテーブル は従来のクラスでは、jdkでいきます。交換用のこと ConcurrentHashMap.の場合を必要としないスレッドの安全性、利用 HashMap ではない threadsafe がより速く、使用ます。
1)ハッシュテーブルは同期はhashmapいません。2)別の違いは、反復子は、HashMapは安全なの列挙子のハッシュテーブルなんです。変更した場合の地図を繰り返し処理しょう。
3)HashMap null値では、ハッシュテーブルは来ない。
HashMapとハッシュテーブル
- 重要なポイントを考HashMapとハッシュテーブル.以下をご覧ください。
1)ハッシュテーブル、Hashmapの実装は、java.util.Mapインタフェース 2)Hashmapとハッシュテーブルは、ハッシュに基づく収集します。仕事ハッシュ.これらの類似性HashMapとハッシュテーブル.
- の違いは何ですかHashMapとハッシュテーブル?
1)最初の違いは、HashMapはスレッドに対して安全なハッシュテーブルはThreadSafe
2)HashMapは性能的に良いのではないのでスレッドで安全です。ながらのハッシュテーブル性能的にはならないのでスレッドで安全です。複数のスレッドがアクセスできないハッシュテーブルでも同時に行います。
HashMap:このクラス内java.utilパッケージで使いたい場合は、あらかじめの要素はキーと値形式です。
ハッシュテーブル:では従来のクラスをロジェクトにおけるそれぞれの内蔵。
Hashtable:
ハッシュテーブル データ構造で保価値のキー-値ペアです。まれていません。nullのキーや値がある。を取得しま NullPointerException
追加した場合はnull値とします。では同期化されます。で付属する。唯一のスレッドでアクセス ハッシュテーブル 特定の時間。
例 :
import java.util.Map;
import java.util.Hashtable;
public class TestClass {
public static void main(String args[ ]) {
Map<Integer,String> states= new Hashtable<Integer,String>();
states.put(1, "INDIA");
states.put(2, "USA");
states.put(3, null); //will throw NullPointerEcxeption at runtime
System.out.println(states.get(1));
System.out.println(states.get(2));
// System.out.println(states.get(3));
}
}
HashMap:
HashMap のような ハッシュテーブル でも受け付けたキー値のペアです。これにnullのキーや値がある。その性能により HashTable
, のでは unsynchronized
.
例:
import java.util.HashMap;
import java.util.Map;
public class TestClass {
public static void main(String args[ ]) {
Map<Integer,String> states = new HashMap<Integer,String>();
states.put(1, "INDIA");
states.put(2, "USA");
states.put(3, null); // Okay
states.put(null,"UK");
System.out.println(states.get(1));
System.out.println(states.get(2));
System.out.println(states.get(3));
}
}
HashMapsでの自由の同期やバッグがあります
HashMap
はエミュレーションおよびそのために使用できる GWT client code
は Hashtable
いません。
同期またはスレッドに対して安全 :
ハッシュマップには同期化されませんがあり、したがって、それはないthred安全で共有することはできませんの間、複数のスレッドでない適切な同期をブロックは、ハッシュテーブルは同期があり、したがって、それはスレッドで安全です。
Nullキーやnull値 :
HashMapでnullキーの数をnull値です。ハッシュテーブルできない。nullのキーや値がある。
繰り返し処理の値:
反復子のHashMapが不可能なので、フェイルファスト反復子が列挙子のハッシュテーブルは、スロー ConcurrentModificationException場合、その他のスレッドの変数を変更する機能を提供する地図の構造を追加したり削除したりし他の要素の反復子自体のremove()メソッドがあります。
スーパークラスおよびレガシー :
HashMapはサブクラスAbstractMapのクラスは、ハッシュテーブルはサブクラスの辞書クラスです。
性能 :
としてのHashMapは同期化されませんのでより速やかに比べてハッシュテーブル.
参照 http://modernpathshala.com/Article/1020/difference-between-hashmap-and-hashtable-in-java 例えば、面接の質問のクイズに関連したJavaコ