2000年3月23日星期四

Map/HashMap サンプル

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Java Map/HashMapの使い方についてシンプルなサンプル
 *
 * 1)Mapインスタンスの生成
 * 2)Mapに要素の追加
 * 3)Mapから要素の取得
 * 4)Mapから要素の削除
 */
public class TestHashMap {
    public static void main(String []args) {
        ////////////////////////////////////
        //1)HashMapからMapのインスタンスを生成
        Map map = new HashMap();
        
        ////////////////////////////////////
        //2)Mapに要素の追加
        map.put("name", "Java太郎");     //key/value。String型
        map.put("name", "Java太郎01");   //重複putの場合、どうなる?
        map.put("age", new Integer(10));  //Integer型
        //map.putAll(Map);  //ほかのMapオブジェクトに含まれたものを一括追加
        //※その他型の値の追加もできますよ
        
        
        ////////////////////////////////////
        //3)Mapから要素の取得
        
        //取得方法1:指定するキーによる取得
        String strValue = (String)map.get("name");  //nameはStringの型であるため
        Integer intValue = (Integer)map.get("age");  //ageはIntegerの型であるため
        
        System.out.println("name:" + strValue);
        System.out.println("age:" + intValue);
        
        //取得方法2:キーセットから取得
        System.out.println("************** Map.keySet() **************");
        Set keySet = map.keySet();  //すべてのキー値を取得
        Iterator keyIte = keySet.iterator();
        while(keyIte.hasNext()) { //ループ。反復子iteratorによる キー 取得
            Object key = keyIte.next();
            Object value = map.get(key); //キーよりvalueを取得
            
            System.out.println(key + "=" + value);
        }
        
        System.out.println("************** Map.entrySet() **************");
        //取得方法3:entrySet(key=valueの形)から取得
        Set entrySet = map.entrySet();     //すべてのvalue
        Iterator entryIte = entrySet.iterator();
        while(entryIte.hasNext()) { //ループ
            Map.Entry obj = (Map.Entry)entryIte.next(); //key=value
            
            System.out.println(obj.getKey() + "="  + obj.getValue());
        }
        
        System.out.println("************** Map.values() **************");
        Collection values = map.values();
        //取得方法3:Mapからコレクションに変更
        for (Object obj:values) {   //JDK1.5+
            System.out.println(obj);
        }
        
        System.out.println("************** 削除 **************");
        //4)Mapから要素の削除
        map.remove("name"); //キーは"name"の要素を削除
        System.out.println("size="+map.size());
        map.clear();    //すべての要素を削除
        System.out.println("size="+map.size());
        
        System.out.println("************** その他 **************");
        //5)その他
        map.put(null, null);    //HashMapの場合,nullもセット可能。
        System.out.println("size="+map.size());
        
        //Generics機能,JDK1.5から
        Map<String, Integer>mapNew = new HashMap<String, Integer>();
        //パラメータ1:String型 にしかセットできません
        //パラメータ2:Integer型 にしかセットできません
        mapNew.put("age", new Integer(0));
        //mapNew.put("name", "10");//"10"はInteger型ではないので、これはできませんよ
        
    }
}

没有评论:

发表评论