地図<文字列、オブジェクト>マップ=新しいHashMapの<文字列、オブジェクト>详解

コードはゆっくりより多くの、よりをノックし始めたとき、私は人生について考えるようになりました〜(Wulian)

私はコーディングすると   地図<文字列、オブジェクト> =地図新しい新しい HashMapの<文字列、オブジェクト>  、I Qiaoxiaは何ですか?

1. マップ:即ち   インタフェース地図<K、V>  K -キータイプ  V -値のタイプ

からなる、マップオブジェクトと(オブジェクトの二つの異なるタイプであってもよい)、目標値の重要な要素が含まれてそれぞれが言うことであるインタフェースであり、そして2つのオブジェクト間のマッピングの対応関係が存在しますアクセスに対応する値を見つけるためのキーを指定することにより、地図たときにコレクション要素、および以前のキー値の値が同じで、次の値のオーバーライド値であるとき、そのためのユニークなキーが、繰り返すことはできませんする必要があります。

そのマップがインターフェイスであるので、[マップで定義されている一般的な方法のいくつかを見てみましょう。

V get(Object key)
指定されたキーがマップされている、または返します。nullこのマップがキーのマッピングが含まれていません。
int hashCode()
このマップのハッシュコード値を返します。
boolean isEmpty()
このマップがキー含まれていない場合-値のマッピングを、それが返すtrueに
Set<K> keySet()
戻り値Setこのビューにマッピングに含まれる鍵を。
V put(K key, V value)
このマップで指定された値は、指定されたキー(オプション)に関連しています。

  など、多くのクラスMapインタフェースを実装があり  TreeMap、  Hashtable、 SortedMap,HashMap,这里只对HashMap进行介绍;

2. HashMapの:すなわち クラスのHashMap <K、V> に基づいて、ハッシュテーブルマップインタフェース。この実装は、オプションのマップオペレーションをすべて提供し、許可  ヌル値や空のキーを。このクラスはマップの順序を保証するものではありません。特に、それは順序を一定に保つことを保証するものではありません。

①.HashMapデータ構造

   Javaプログラミング言語では、基本的な構造は、1つのアレイ、別の(参照)へのポインタ、HashMapのは、これら2つのデータ構造によって達成されるべきであり、二種類です。HashMapのは、実際には「ハッシュリスト」データ構造、即ち、アレイ及びリストの組み合わせです。すなわち、HashMapの根本的な構造が配列され、各列は、リンクされたリストです。ときに新しいHashMapの、それは配列を初期化します。

集計は、次のとおり、これは全体のエントリオブジェクト全体としてキー値のプロセスの下でのHashMapです。キーと値のペアの全て、エントリオブジェクトを格納するために必要な場合、この配列の位置にequalsメソッドの下で決定さ、ハッシュアルゴリズムに従ってアレイにおけるその格納位置を決定するを格納するエントリ[]アレイを使用してHashMapの底リストの格納場所、エントリを削除する必要性は、また、その後equalsメソッド上の位置に応じて、リストからエントリを削除し、ハッシュアルゴリズムに従ってアレイにおけるその格納位置を見つけます。

 ②HashMapのその性能に影響を与える二つのパラメータ:初期容量と負荷係数。 

    容量は、初期容量がハッシュテーブルに時間を作成する機能は、単にハッシュテーブル内のバケットの数です。負荷係数は、ハッシュテーブルの使用の空間的広がり、より大きな負荷率、またその逆も小さいハッシュテーブルの充填度が高い、の尺度です。ハッシュテーブルのエントリ数が負荷係数と現在の容量の積を超える場合、ハッシュテーブルは、ハッシュを再される(すなわち、内部データ構造の再構成)、ハッシュテーブルバレルの約二倍の数となるように。一般的なルールとして良好なトレードオフを提供する時間と空間コストとの間に、デフォルトの負荷係数(0.75)。値を大きくすると、スペースのオーバーヘッドを減少させたが(に反映ルックアップコスト増加のHashMapを含むほとんどのオペレーティング・クラス、取得およびPUTを)。初期容量を設定する場合、マッピングおよびローディング要因のエントリの期待数は再ハッシュの操作の数を最小限にするために、考慮されるべきです。負荷率で割ったエントリの最大数よりも大きい初期容量は、リロード動作を発生しない場合。

。HashMapのは、Mapインタフェースを実装しているため③、それはすべてのインターフェイスのすべてのメソッドを実装しなければならないので、ここでそれを書いていません -

以下は簡単な例です:

 

        地図<文字列、オブジェクト>マップ=新しいHashMapの<文字列、オブジェクト>(); // オブジェクトマップにオブジェクトの親のすべての種類を作成
        map.put(公開、「公開」) ; // ストアキーと値の
        map.putを(「ステータス」、ステータス); 
map.getとして(「公開」); //は、対応するキーの値を取得します

 

あなたはまた、原則のHashMapの実現についての詳細を学ぶために、この記事を参照することができますhttp://wiki.jikexueyuan.com/project/java-collection/hashmap.html

地図HashMapの我々はまた、公式サイト(直接クリック)で見ることができ、私はこの記事はあなたを助けることができると思います。

 

おすすめ

転載: www.cnblogs.com/wyhhh/p/11286178.html