HashMapの、ハッシュテーブルのConcurrentHashMap

データ構造は添加鎖、キー配列、リストの値のアレイで構成されています

配列やリンクリスト:Javaでは、セーブデータ、2つの比較的単純なデータ構造があります。挿入することが困難と削除、簡単なアドレッシング、および機能の一覧は以下のとおりです:配列の特長である簡単難しく、挿入および欠失に取り組みます。私たちは、競合一般的に使用されるハッシュ関数のソリューションは、チェーンアドレス法と呼ばれる方法で、実際には、配列と一緒にリンクされたリストは、両方の利点に遊びが、我々はリンクリストの配列として理解することができますがあり、上記の。

                                

私たちは、アレイの各メンバーは、リンクされたリストである、左が配列であることは明らかである、チャートから見ることができます。データ構造のすべての要素は、要素間のリンクのために、含まれているポインタを含みます。行くために別のリストに割り当てられている要素の私たち自身の特徴要素によると、今度は、私たちは、リストから正しい要素を見つけ、右側のリストにこれらの機能を見つけるものです。本方法は、ハッシュアルゴリズムを、計算され、即ち、素子特性に応じて(さらにのindexOf()関数を含むもちろん、)配列要素のこのハッシュ()関数の主人公。

 

)ハッシュ(:によって特徴付け素子アレイ添字を計算します

  HashMapのは、配列の長さであり、この長さの所定の倍数でJavaはわずか2、初期値16です。

  ハッシュ単純なアプローチを求めていること次にINTハッシュコードの値)のhashCodeオブジェクト(呼び出すことによって、アレイのモジュロ長さを取得し,,キーハッシュコードを見つけるために取られます。パフォーマンス上の理由から、Javaは総実現操作ビット単位のモジュロ演算を使用しています。

 

ConcurrentHashMapのは、一般的にスレッドセーフで使用される、HashMapのからのHashMapで力強いパフォーマンスを継承しています

概要

  • それぞれが2倍に拡大した後、HashMapのデフォルトの初期サイズは、16です。

  • ハッシュテーブルデフォルトの初期サイズは、各2N + 1の後に元に拡大し、11です。

  • ハッシュテーブルのサイズが素数である場合には、簡単なモジュロハッシュ結果は非常にだけでは、この時点から、ハッシュテーブルのハッシュテーブルサイズ選択することを、より均一になり、これらのうちの高いと思われます。より優れた分散のハッシュ結果ので。

  • 弾性率は2の累乗である場合は、モジュロ演算は、我々は結果を得るために、直接ビット操作を使用することができる場合、効率は除算を行うよりもはるかに高いです。だから、ハッシュ計算効率のより良いのHashMapです。

  • しかし、HashMapのは、この問題を解決するために、今度はハッシュの不均一な分布の問題を導入する代わりに、ハッシュの使用HashMapのビット操作で効率を向上させるためだけでなく、ハッシュアルゴリズムには、いくつかの改良を加えた(計算妨害し、高地低操作のすべての値が関与していることを確認するために組み合わせて、異なる高は、その後、低ビット異なる演算)は、ハッシュ衝突現象は表示されません表示されます。

  • ハッシュテーブルのキーと値のペアが空またはヌル・ポインタ例外パケットとすることができ、ハッシュマップとは、それがのcon​​tainsKeyのcontainsValue及びキー値に対応するを含む方法かどうかによって決定される、キー値がNULL値であることを可能にします。
  • クラスAbstractMapからのHashMapクラス継承。しかし、我々は、Mapインタフェースを達成しています。
    ハッシュテーブルから継承された辞書のクラスは、辞書のクラスは、(ソースコードに反映注)破棄されたクラスです。親クラスは当然誰もそれのHashtableのサブクラスを使用、放棄されていません。
  • スレッドセーフなHashtableのHashMapのスレッドセーフ
  • jdk1.8での競合の解決同じではありません
    •   

      競合の数が8未満である場合に1が、リストは、紛争解決に基づいています。
      競合が8より大きいと等しいエントリ2は、それが変換された競合**赤黒木として格納されます。**
      3.とき数が、6未満、およびリストに保存されました。

    • Hashtableに、彼らはリンクリストに格納されています。

おすすめ

転載: www.cnblogs.com/nyhhd/p/12643148.html