I.はじめに;
メインのMap.EntryとConcurrentHashMapの簡単な導入及び使用しないで、深さの実装は、ソースを専門。
Map.Entry
、のentrySetマップオブジェクトはメソッドである各オブジェクトのセットを達成するのMap.Entryオブジェクトインターフェイスは、キーマップのコレクションである戻り、マップは、Javaのインターフェイス、および内部インターフェースのMap.Entryマップのあります/値のペアは、およびキーは、その後のMap.Entryの方法設定値マップによって得ることができます。
*オブジェクトのgetKey():キーワードのエントリを返します
)オブジェクトのgetValue(*:エントリの値を返し
、オブジェクトのsetValue(Object値)*:関連付けられた値は、画像が値を変更し、古い値を返します。
HashMapの、ハッシュテーブルのConcurrentHashMap
以下は、3つの主要セット格納されたキーと値のペアであり、前記キーは、オブジェクト値であり、重複キーを含めることはできませんが、重複する値を含むことができます。
* HashMapの:非スレッドセーフ、HashMapのハッシュテーブルを削除する方法を含み、のcontainsValueのcontainsKeyを交換し、ハッシュテーブルで、キーと値は、null値が表示されることができ;
* ハッシュテーブル:スレッドセーフ;のcontainsValueと3つのcontainsKey、ハッシュテーブルが含まれている保持;同じ機能とのcontainsValueが含まれている方法で、キーと値がnull値ですが許可されていません
*はConcurrentHashMapの安全で効率的なスレッド、マルチスレッドを推奨、キーと値がnull値が許可されていません、次のとおりです。
第二に、試験サンプル。
1 パブリック クラスMapEntryTest { 2 3 公共 静的 ボイドメイン(文字列[]引数){ 4 // TODO自動生成方法スタブ 5 地図<文字列、文字列>マップ= 新しい HashMapの<文字列、文字列> (); 6 map.put( "アンディ"、 "90" )。 7 map.put( "トニー"、 "80" )。 8 map.put( "ジェイソン"、 "96" )。 9 のため(のMap.Entry <文字列、文字列> {:map.entrySet()エントリ) 10 のSystem.out.println( "キー=" +エントリー。entry.getValue()); 11 IF(entry.getKey()に等しい( "トニー。" ){) 12である Entry.setValue( "100"); //の値を変更し、値の古い値を返す; 13 } 14 } 15 (map.get( "トニー"などのSystem.out.println )); 16 } 17 18れています }
1 パブリック クラスConcurrentHashMapTest { 2 3 公共 静的 ボイドメイン(文字列[]引数){ 4 // TODO自動生成方法スタブ 5 地図<文字列、文字列>マップ= 新しい HashMapの<文字列、文字列> (); 6 map.put( "アンディ"、 "90" )。 7 map.put(NULL、NULL ); 8 のSystem.out.println(map.size())。 9 10 地図<文字列、文字列> MAP2 = 新規のConcurrentHashMap <文字列、文字列> (); 11 map2.put( "トニー"、 "80" ); 12 のSystem.out.println(map2.get( "トニー" )); 13 14 地図<文字列、文字列> MAP3 = 新しい Hashtableの<文字列、文字列> (); 15 map3.put( "ジャック"、 "20" )。 16 のSystem.out.println(map3.get( "ジャック" )); 17 } 18 19 }