[Javaの] - 地図コレクション

java.util.Map <K、V>セット

機能セットの地図:

  1. 地図セットはデュアル列セットで、要素は、2つの値(キー、値)が含まれてい
  2. コレクションの要素の地図、キーと値のデータ型が同じでも異なっていてもよいです
  3. コレクションの要素の地図、キーリピートに許可されていない、値を繰り返すことができます
  4. コレクションの要素の地図、キーと値が一から一です

java.util.HashMapを<K、V>を実装地図<K、V>インターフェイスを設定します

HashMapのは、機能を設定します。

  1. 特別に高速クエリ:HashMapのは、基礎となるハッシュテーブルのコレクションです
  2. HashMapの要素の記憶および順序が矛盾抽出要素であってもよい、順不同コレクションのコレクションです

java.util.LinkedHashMap <K、V>セットはHashMapの<K、V>セットを拡張します

LinkedHashMapの特徴:

  1. LinkedHashMap基礎となるコレクション+チェーン・ハッシュ・テーブル(保証繰り返し順)
  2. 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キーを繰り返し、秩序あるべきではありません

【番外】

 

公開された215元の記事 ウォン称賛37 ビュー80000 +

おすすめ

転載: blog.csdn.net/MirabelleZWH/article/details/98344327