Mapインタフェース(二列集合)
Mapコレクションの概要: Mapの集合要素はペアで存在し、各要素はキー(key)と値(value)で構成される. Mapセットの要素、keyとvalueのデータ型は同じでも異なってもよい. Mapの集合の中の要素、keyは繰り返してはいけなくて、valueは繰り返してもいいです; Map集合の要素、keyとvalueは1つ1つ対応しています.
java.util.HashMap集合implements MapインタフェースHashMap集合の特徴: HashMap集合の下位層はハッシュテーブルである.クエリーの速度が特に速い. JDK1.8以前:配列+一方向チェーンテーブル; JDK1.8以降:配列+一方向チェーンテーブル/赤黒ツリー(チェーンテーブルの長さが8を超える):クエリーの速度を上げる; hashMap集合は不要な集合であり、記憶要素と取り出し要素の順序が一致しない可能性がある.
java.util.linkedHashMap集合extends HashMap集合linkedHashMap集合の特徴: linkedHashMap集合の下位層はハッシュテーブル+チェーンテーブル(反復の順序を保証する) である. linkedHashMap集合は秩序ある集合であり、記憶要素と取り出し要素の順序は一致している.
Mapインタフェースの一般的な方法:
Mapコレクションを巡る
HashMapは、カスタムタイプのキー値Mapセット保証keyが一意であることを格納します.keyの要素としてhashCodeメソッドとequalsメソッドを書き換え、keyが一意であることを保証する必要があります.LinkedHashMap集合:秩序java.util.linkedHashMap extends HashMap Mapインタフェースのハッシュテーブルとリンクリストが実装され、予知可能な反復順序を有する.下位原理:ハッシュテーブル+チェーンテーブル(レコード要素の順序)Hashtable集合:キーも値も空にできない;java.util.Hashtable集合implements MapインタフェースHashtable:下位はハッシュテーブルであり、スレッドの安全な集合であり、単一スレッドの集合であり、速度が遅い;HashMap:下位はハッシュテーブルであり、スレッドの不安全な集合であり、マルチスレッドの集合であり、速度が速い;HashMap集合(以前に学んだすべての集合):null値、nullキーを格納できます.Hashtable集合、null値、nullキーを格納できません.Hashtableのサブクラスproperties集合はIOストリームと結合した唯一の集合です.
java.util.HashMap集合implements MapインタフェースHashMap集合の特徴:
java.util.linkedHashMap集合extends HashMap集合linkedHashMap集合の特徴:
Mapインタフェースの一般的な方法:
public V remove(Object key);// , Map , ;
key :v ;
key :v null;
public V put(K key,V value); Map ;
:V
,key , null;
,key , value map value, value ;
public V get(Object key); , Map ;
:
key : value ;
key : null;
boolean containsKey(Object key) ;
true, false;
Mapコレクションを巡る
: Map :
set<K> keyset() Set ;
:
1. Map keySet(), Map key , set ;
2. set , Map key;
3. Map get(key), key value;
:
Set<String> set = map.keySet();
Iterator<String> it = set.iterator();
while(it.hasNext()){
String key = set.next();
Integer value = map.get(key);
System.out.println(key + "="+ value);
// foreach Set 。
}
: Entry
Map :
Set <Map.Entry<K,V>> entrySet() Set ;
:
1. Map entrySet(), Map Entry , Set ;
3. Entry getKey() getValue() ;
:
Set<Map.Entry<String,Integer>> it = set.iterator();
while(it.hasNext()){
Map.Entry<String,Integer> entry = it.next();
String key = entry.getKey();
Integer Value = entry.getValue();
System.out.pringln(Key + ":" + Value);
// for-each ;
}
HashMapは、カスタムタイプのキー値Mapセット保証keyが一意であることを格納します.keyの要素としてhashCodeメソッドとequalsメソッドを書き換え、keyが一意であることを保証する必要があります.LinkedHashMap集合:秩序java.util.linkedHashMap extends HashMap Mapインタフェースのハッシュテーブルとリンクリストが実装され、予知可能な反復順序を有する.下位原理:ハッシュテーブル+チェーンテーブル(レコード要素の順序)Hashtable集合:キーも値も空にできない;java.util.Hashtable集合implements MapインタフェースHashtable:下位はハッシュテーブルであり、スレッドの安全な集合であり、単一スレッドの集合であり、速度が遅い;HashMap:下位はハッシュテーブルであり、スレッドの不安全な集合であり、マルチスレッドの集合であり、速度が速い;HashMap集合(以前に学んだすべての集合):null値、nullキーを格納できます.Hashtable集合、null値、nullキーを格納できません.Hashtableのサブクラスproperties集合はIOストリームと結合した唯一の集合です.