java.util.Map <K、V>セット
機能セットの地図:
- 地図セットはデュアル列セットで、要素は、2つの値(キー、値)が含まれてい
- コレクションの要素の地図、キーと値のデータ型が同じでも異なっていてもよいです
- コレクションの要素の地図、キーリピートに許可されていない、値を繰り返すことができます
- コレクションの要素の地図、キーと値が一から一です
java.util.HashMapを<K、V>を実装地図<K、V>インターフェイスを設定します
HashMapのは、機能を設定します。
- 特別に高速クエリ:HashMapのは、基礎となるハッシュテーブルのコレクションです
- HashMapの要素の記憶および順序が矛盾抽出要素であってもよい、順不同コレクションのコレクションです
java.util.LinkedHashMap <K、V>セットはHashMapの<K、V>セットを拡張します
LinkedHashMapの特徴:
- LinkedHashMap基礎となるコレクション+チェーン・ハッシュ・テーブル(保証繰り返し順)
- LinkedHashMapセットが記憶素子の集合であり、要素が順次一致検索される命じ
【地図】
一般的に使用される方法:
パブリックVプット(Kキー、V値):指定されたキーの値は、製剤の設定されたマップに追加されます
戻り値:V
キーと値のペアが格納されている場合は、キーは、戻り値がnullのVで、繰り返されることはありません
保存されたキーと値のペアは、キーの重複は、新しい値がマップの値が繰り返され、置き換えられます場合は、戻り値は値に置き換えられます
private static void show01() {
// 创建Map集合对象,多态
Map<String,String> map = new HashMap<>();
String v1 = map.put("韩商言","鱿小鱼");
System.out.println("v1"+v1);//v1:null
String v2 = map.put("韩商言","张文慧");
System.out.println("v2"+v2);//v2:张文慧
System.out.println(map);//{韩商言=张文慧}
}
パブリックV削除(オブジェクトキー):Mapの要素のセットを削除するには、キーに対応するキーの開発は、要素の戻り値は削除します
戻り値:V
キーの存在、Vの戻り値は削除されます
キーが存在しない場合、Vリターンのヌル
public static void show02() {
//创建map集合对象
Map<String,Integer> map = new HashMap<>();
Map.put("赵丽颖",168);
Map.put("林志玲",168);
Map.put("张钧蜜",168);
System.out.println(map);
Integer v1 = map.remove("赵丽颖");
System.out.println("v1"+v1);
System.out.println(map);
Integer v2 = map.remove("迪丽热巴");
System.out.println("v2"+v2);//v2:null
System.out.println(map);
}
パブリックVの取得(オブジェクトキー)、指定されたキーを持つ地図でセットに対応する値を取得します。
戻り値:
キーは、戻り値に対応する値が存在します
存在しないキー、リターンはnull
public static void show03() {
//创建map集合对象
Map<String,Integer> map = new HashMap<>();
Map.put("赵丽颖",168);
Map.put("林志玲",169);
Map.put("张钧蜜",170);
Integer v1 = map.get("赵丽颖");
System.out.println("v1"+v1);//v1:168
Integer v2 = map.get("迪丽热巴");
System.out.println("v2"+v2);//v2:null
}
ブールのcontainsKey(オブジェクトキー)のセットを分析することは、指定されたキーが含まれています
リターンはtrueを含み、それは返す虚偽が含まれていません。
private static void show04() {
//创建map集合对象
Map<String,Integer> map = new HashMap<>();
Map.put("赵丽颖",168);
Map.put("林志玲",169);
Map.put("张钧蜜",170);
boolean b1 = map.containsKey("赵丽颖");
System.out.println("b1"+b1);//b1:true
boolean b2 = map.containsKey("迪丽热巴");
System.out.println("b2"+b2);//v2:false
}
地図コレクショントラバーサルキーのルックアップ値
方法:
セット<K>のkeySet()このマップのキーに含まれるセットビューを返します。
実装手順:
public static void main(String[] args) {
//创建Map集合对象
Map<String,Integer> map =new HashMap<>();
map.put("",168);
map.put("",168);
map.put("",168);
//1.使用map集合汇总的方法keySet(),把map集合所有的key取出来,存储到一个set集合中
Set<String> set = map.keySet();
// 或者:Set<Map.Entry<String,Integer>> set = map.entrySet();
//2.遍历set集合,获取map集合中的每一个key
//使用迭代器遍历set集合
Iterator<String> it = set.iterator();
// 或者:Map.Entry<Map.Entry<String,Integer>> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
//或者:Map.Entry<String,Integer> entry = it.next();
//3.通过map集合中的方法get(key),通过key找到value
Integer value = map.get(key);
//或者:String key = entry.getKey();
//Integer value = entry.getValue();
System.out.println(key+"="+value);
}
}
[ストアのカスタムタイプのキーへのHashMap]
キー:スティングタイプ
Stringクラスは、hashCodeメソッドをオーバーライドし、equalsメソッドを、一意のキーを保証することができます
値:人タイプ
値を繰り返すことができる(同じため、同じ名前で同じ年齢の人です)
private static void show01() {
// 创建HashMap集合
HashMap<String,Person> map = new HashMap<>();
// 往集合中添加元素
map.put("北京",new Person("李现",18));
map.put("上海",new Person("韩商言",19));
map.put("广州",new Person("现男友",20));
map.put("北京",new Person("宝宝",18));
//使用keySet加增强for遍历Map集合
Set<String> set = map.keySet();
for(String key : set ) {
Person value = map.get(key);
System.out.println(key+"--->"+value);
}
}
キー:人タイプ
hashCodeメソッドをオーバーライドして、一意のキーを確保するための方法を等しくしなければならないPersonクラス
値:文字列型
繰り返すことができます
private static void show02() {
// 创建HashMap集合
HashMap<Person,String> map = new HashMap<>();
// 往集合中添加元素
map.put(new Person("李现",18),"北京");
map.put(new Person("韩商言",19),"上海");
map.put(new Person("现男友",20),"广州");
map.put(new Person("宝宝",18),"北京");
//使用keySet加增强for遍历Map集合
Set<Map.Entry<Person,String> set = map.entrySet();
for(Map.Entry<Person,String> entry : set ) {
Person key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"--->"+value);
}
}
[コレクション]のLinkedHashMap
java.util.LinkedHashMap <K、V> entendsのHashMap <K、V>
ハッシュテーブルと予測可能な繰り返し順序を持つMapインタフェースのリンクリストの実装
基本原理:
+チェインハッシュ・テーブル(シーケンシャル記録素子)
キーのHashMapのは、無秩序繰り返されるべきではありません
LinkedHashMapキーを繰り返し、秩序あるべきではありません
【番外】