エントリーレベルでは、最もよく聞かれる質問の1つ JavaHashMapとHashtableについてです。したがって、に関連するすべてに答える準備ができている必要があります HashMap またはハッシュテーブル。 Javaは、HashMapとHashtableを使用して、次の形式でデータを格納します。 キー そして 値 。したがって、この記事は、これら2つの主な違いを理解するのに役立ちます。
次の順序でトピックについて説明します。
さぁ、始めよう!
HashMapとは何ですか?
HashMap のマップベースのコレクションクラスです これは、キーと値のペアでデータを格納するために使用されます。これは、JavaでのMapインターフェースの実装に役立ちます。それは基本的にの一部です Javaバージョン1.2以降、JavaでのMapインターフェースの基本的な実装を提供します。 HashMap内の値にアクセスするには、その値を知っている必要があります キー 。
これは、HashMapと呼ばれる手法を使用しているため、HashMapと呼ばれます。 ハッシュ 。ハッシュは、大規模な変換のプロセスです 文字列の値を一定に保つことにより、小さい値に変更します。結果の圧縮値は、インデックス作成と検索の高速化に役立ちます。
javascriptのindexofとは何ですか
ハッシュテーブルとは何ですか?
ハッシュテーブルは データ構造 キー/値のペアを格納するために使用されます。ハッシュテーブルでは、データは配列形式で格納され、各データ値には独自のインデックス値があります。目的のデータのインデックスがわかっている場合は、データに非常に高速にアクセスできます。
Java Hashtableクラスは、キーを値にマップするハッシュテーブルを実装します。 Dictionaryクラスを継承し、Mapインターフェイスを実装します。
ハッシュテーブル宣言
パブリッククラスHashtableはDictionaryを拡張し、Map、Cloneable、Serializableを実装します
に: それは地図によってそれが鍵の種類です。
V: これは、マップされた値のタイプです。
JavaでのHashMapとHashtableのしくみを理解したところで、パラメーターを見て、HashMapとHashtableの違いを理解しましょう。
ここで、HashMapとHashtableの主な違いを指摘しましょう。
JavaHashMapとHashtable
パラメーター | HashMap | ハッシュ表 |
同期 | 同期されていないということは、スレッドセーフではなく、適切な同期コードがないと多くのスレッド間で共有できないことを意味します。 | 同期され、多くのスレッドと共有できます |
ヌルキー | 1つのnullキーと複数のnull値のみを許可します | nullキーまたはその値を許可しません |
レガシーシステム | これはJavaコレクションの一部です | ハッシュテーブルはレガシークラスであり、最初のクラスの一部ではありませんでした |
イテレータ | イテレータはフェイルファストであり、他のスレッドがマップを変更しようとすると、concurrentModificationExceptionをスローします | 列挙子はフェイルファストではありません |
クラスの継承 | 継承 AbstractMap クラス | 辞書クラスを継承します |
では、Java HashMapとHashtableはいつ使用できますか?
HashMapとHashtableをいつ使用するのですか?
- 同期 JavaHashMapとHashtableの主な違いです。ただし、スレッドセーフな操作が必要な場合は、すべてのメソッドが同期されるため、Hashtableを使用できます。ただし、これはレガシークラスであり、回避する必要があります。これはHashMapでは不可能です。
- マルチスレッド環境の場合、Hashtableとほぼ同様のConcurrentHashMapを使用できます。ここでは、HashMapを明示的に同期させることもできます
- 同期された操作ではパフォーマンスが低下するため、必要になるまで、必要な場合を除いて回避する必要があります。したがって、非スレッド環境では、HashMapが間違いなく使用されます。
これで、この記事の終わりになります。 間の違い JavaHashMapおよびHashtable。皆さんがこのトピックについて明確になっていることを願っています。
「JavaHashMapvs Hashtable」に関するこの記事が関連していると感じた場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社が世界中に広がっています。
Pythonでデータ型を見つける方法
このコースは、あなたがすぐに始められるように設計されています コアJavaの概念と高度なJavaの概念の両方について、さまざまなトレーニングを行います。 Hibernate&Springのように。
ご不明な点がございましたら、「Java HashMapvsHashtable」のコメントセクションでお気軽に質問してください。喜んでお答えします。