JAVA中Map集合

6913 ワード

Mapコレクションの概要と特徴
  • A:Mapインタフェースの概要
  • APIを参照してください.
  • キーを値のオブジェクト
  • にマッピングする.
  • マッピングは、重複するキー
  • を含むことができない.
  • 各キーは、最大1つの値
  • にしかマッピングできません.

  • B:MapインタフェースとCollectionインタフェースの違い
  • Mapは2列、Collectionは1列の
  • Mapのキーは一意であり、CollectionのサブシステムSetは一意の
  • である
  • Mapセットのデータ構造値はキーに対して有効であり、値に関係ない.Collectionコレクションのデータ構造は、要素に対して有効な
  • である.

    Mapコレクションの機能概要
  • A:Mapセットの機能概要
  • a:機能の追加
  • V put(Kkey,V value):要素を追加します.
  • キーが1回目の記憶である場合、要素を直接記憶しnull
  • を返す.
  • キーが初めて存在する場合は、以前の値を値で置き換え、以前の値
  • を返す.

  • b:削除機能
  • void clear():すべてのキー値ペア要素
  • を除去する
  • V remove(Object key):キーからキー値ペア要素を削除し、
  • に戻ります.
  • c:判定機能
  • boolean containsKey(Object key):セットに指定されたキーが含まれているかどうかを判断する
  • boolean containsValue(Object value):セットに指定した値が含まれているかどうかを判断する
  • boolean isEmpty():集合が空かどうかを判断する
  • d:取得機能
  • Set



  • Mapコレクションの遍歴キーの値
  • A:キー検索の考え方:
  • すべてのキーのセット
  • を取得する.
  • キーの集合を巡回し、各キー
  • を取得する.
  • キールックアップ値
  • による
  • B:ケーススタディ
  • Mapセットの巡回キー探索値
    HashMap hm = new HashMap<>();
    hm.put("  ", 23);
    hm.put("  ", 24);
    hm.put("  ", 25);
    hm.put("  ", 26);
    
    /*Set keySet = hm.keySet();         //         
    Iterator it = keySet.iterator();    //     
    while(it.hasNext()) {                       //            
        String key = it.next();                 //           ,           
        Integer value = hm.get(key);            //      
        System.out.println(key + "=" + value);  //     
    }*/
    
    for(String key : hm.keySet()) {             //  for             
        System.out.println(key + "=" + hm.get(key));
    }
    

  • Mapコレクションの遍歴キー値対オブジェクトキーと値
  • A:キー値対オブジェクトキーと値の考え方:
  • すべてのキー値対オブジェクトのセット
  • を取得する.
  • キー値対オブジェクトの集合を巡回し、各キー値対オブジェクト
  • を取得する.
  • キー値に基づいてオブジェクトのキーと値
  • を検索する.
  • B:ケーススタディ
  • Mapセットの巡回キー値対オブジェクトキー探索値
    HashMap hm = new HashMap<>();
    hm.put("  ", 23);
    hm.put("  ", 24);
    hm.put("  ", 25);
    hm.put("  ", 26);
    /*Set> entrySet = hm.entrySet(); //            
    Iterator> it = entrySet.iterator();//     
    while(it.hasNext()) {
        Entry en = it.next();              //       
        String key = en.getKey();                               //          
        Integer value = en.getValue();                          //          
        System.out.println(key + "=" + value);
    }*/
    
    for(Entry en : hm.entrySet()) {
        System.out.println(en.getKey() + "=" + en.getValue());
    }
    

  • LinkedHashMapの概要と使用
    *LinkedHashMapの特徴*底層はチェーンテーブルで実現されており、どのように保存すればいいかを保証しています.
    統計文字列内の各文字の出現回数
  • A:ケーススタディ
  • 需要:統計文字列中の各文字の出現回数String str=「aaabbbbccccccc」;char[] arr = str.toCharArray();//文字列を文字配列に変換するHashMap

  • 集合ネストされたHashMapネストされたHashMap
  • A:ケーススタディ
  • 集合ネストHashMapネストHashMap

  • HashMapとHashtableの違い
  • HashMapとHashtableの違い
  • HashtableはJDK 1である.0バージョンでは、スレッドが安全で、効率が低く、HashMapはJDK 1です.2バージョンでは、スレッドが安全ではなく、効率が高い


  • Collectionsツールクラスの概要と一般的な方法の説明
  • A:Collectionsクラスの概要
  • 集合操作のためのツールクラス
  • B:Collectionsメンバーメソッド
  • public static void sort(List list) public static int binarySearch(List

  • 模擬闘地主のトランプとトランプ
  • A:ケーススタディ
  • 模擬闘地主洗牌と発牌、牌無序列
    //     
    String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    String[] color = {"  ","  ","  ","  "};
    ArrayList poker = new ArrayList<>();
    
    for(String s1 : color) {
        for(String s2 : num) {
            poker.add(s1.concat(s2));
        }
    }
    
    poker.add("  ");
    poker.add("  ");
    //  
    Collections.shuffle(poker);
    //  
    ArrayList gaojin = new ArrayList<>();
    ArrayList longwu = new ArrayList<>();
    ArrayList me = new ArrayList<>();
    ArrayList dipai = new ArrayList<>();
    
    for(int i = 0; i < poker.size(); i++) {
        if(i >= poker.size() - 3) {
            dipai.add(poker.get(i));
        }else if(i % 3 == 0) {
            gaojin.add(poker.get(i));
        }else if(i % 3 == 1) {
            longwu.add(poker.get(i));
        }else {
            me.add(poker.get(i));
        }
    }
    
    //  
    
    System.out.println(gaojin);
    System.out.println(longwu);
    System.out.println(me);
    System.out.println(dipai);
    

  • トランプの地主のトランプとトランプを模擬してそしてトランプに対して並べ替えのコードの実現を行います
  • A:ケーススタディ
  • 闘地主のトランプとトランプをシミュレートし、トランプをソートするコードは
  • を実現する.
  •     //    
        String[] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
        String[] color = {"  ","  ","  ","  "};
        HashMap hm = new HashMap<>();          //        
        ArrayList list = new ArrayList<>();            //    
        int index = 0;                                          //      
        for(String s1 : num) {
            for(String s2 : color) {
                hm.put(index, s2.concat(s1));                   //          HashMap 
                list.add(index);                                //      ArrayList   
                index++;
            }
        }
        hm.put(index, "  ");
        list.add(index);
        index++;
        hm.put(index, "  ");
        list.add(index);
        //  
        Collections.shuffle(list);
        //  
        TreeSet gaojin = new TreeSet<>();
        TreeSet longwu = new TreeSet<>();
        TreeSet me = new TreeSet<>();
        TreeSet dipai = new TreeSet<>();
    
        for(int i = 0; i < list.size(); i++) {
            if(i >= list.size() - 3) {
                dipai.add(list.get(i));                         // list         TreeSet        
            }else if(i % 3 == 0) {
                gaojin.add(list.get(i));
            }else if(i % 3 == 1) {
                longwu.add(list.get(i));
            }else {
                me.add(list.get(i));
            }
        }
    
        //  
        lookPoker("  ", gaojin, hm);
        lookPoker("  ", longwu, hm);
        lookPoker("  ", me, hm);
        lookPoker("  ", dipai, hm);
    
    }
    
    public static void lookPoker(String name,TreeSet ts,HashMap hm) {
        System.out.print(name + "   :");
        for (Integer index : ts) {
            System.out.print(hm.get(index) + " ");
        }
    
        System.out.println();
    }