ホームページ >Java >&#&チュートリアル >JavaのHashMapとHashtableの違いは何ですか
HashMap クラスと Hashtable クラスはどちらも java.util.map インターフェースを実装していますが、その動作メソッドと使用法には違いがあります。 HashMapとHashtableの違いについては以下の記事で解説していますので、皆様のお役に立てれば幸いです。
java での HashMap と Hashtable の例
まずは、例を通して HashMap と Hashtable を見てみましょうハッシュテーブルとの違い。
HashMap と Hashtable は、キーと値のペアをハッシュ テーブルに保存します。 Hashtable または HashMap を使用する場合、キーとして使用するオブジェクトと、そのキーにリンクされる値を指定します。次に、キーがハッシュ化され、結果のハッシュ (ハッシュ) コードがテーブルに格納されている値へのインデックスとして使用されます。
java コード:
import java.util.*; import java.lang.*; import java.io.*; /* 只有当类是公共的时,类的名称才必须是“main” */ class Ideone { public static void main(String args[]) { //----------hashtable ------------------------- Hashtable<Integer,String> ht=new Hashtable<Integer,String>(); ht.put(100,"Amit"); ht.put(104,"Amit"); ht.put(101,"Vijay"); ht.put(102,"Rahul"); System.out.println("-------------Hash table--------------"); for (Map.Entry m:ht.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } //----------------hashmap-------------------------------- HashMap<Integer,String> hm=new HashMap<Integer,String>(); hm.put(100,"Amit"); hm.put(104,"Amit"); // hashmap 允许重复值 hm.put(101,"Vijay"); hm.put(102,"Rahul"); System.out.println("-----------Hash map-----------"); for (Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } } }
出力:
HashMap と Hashtable の間違い
##1. HashMap は非同期であり、スレッドセーフではありません。正しい同期コードがない場合、複数のスレッド間で共有することはできません。一方、Hashtable は同期であり、スレッドセーフです。多くのスレッドで共有できます。 注: スレッド同期が必要ない場合は、通常、HashTable よりも HashMap の方が優れています。 2. HashMap では 1 つの null キーと複数の null 値が許可されますが、Hashtable では null キーまたは null 値が許可されません。 3. Hashmap は挿入順序を維持するために linkedhashmap を実装し、treemap はキーの昇順に従ってマッピングを並べ替えます。また、ハッシュテーブルはいかなる種類の順序付けも保証せず、マッピングを特定の順序で維持することもありません。 4. HashMap は AbstractMap クラスを継承し、HashTable は Dictionary クラスを継承します。 5. Hashtable のデフォルトの初期容量は 11 で、拡張するたびに元の 2n 1 になりますが、HashMap のデフォルトの初期容量は 16 で、拡張するたびに、容量は純正の2倍になります。 6. ハッシュ値を計算するさまざまな方法 7. HashMap のイテレータはフェイルファスト メカニズムですが、Hashtable のイテレータはフェイルファスト メカニズムではありません。 おすすめのビデオチュートリアル: 「Java チュートリアル 」
以上がこの記事の全内容です。皆様の学習にお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !以上がJavaのHashMapとHashtableの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。