package cn.yu.hashmap;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class hashmap {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("1", "aaa");
        map.put("2", "bbb");
        map.put("3", "ccc");
        map.put("4", "ddd");
        map.put("5", "eee");
        map.put("6", "fff");
        map.put("7", "ggg");
        map.put("8", "hhh");
        map.put("9", "iii");
        /*
         * 遍历hashmap
         */
        hashmap1(map);
        line();
        /*
         * 用keySet遍历
         */
        hashmap2(map);
        line();
        /*
         * 用entrySet遍历 速度快
         */
        hashmap3(map);
        line();
    }
    public static void hashmap1(HashMap<String, String> map) {
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("Key:" + entry.getKey() + "   value:" + entry.getValue().toString());
        }
    }
    public static void hashmap2(HashMap<String, String> map) {
        Iterator<String> it=map.keySet().iterator();//这是取得键对象   
        while(it.hasNext())   {   
           System.out.println("value: "+map.get(it.next()));   //获得键所对应的值。   
        } 
    }
    public static void hashmap3(HashMap<String, String> map) {
        Iterator<Entry<String, String>> it = map.entrySet().iterator();  
        while(it.hasNext()){  
            Entry<String, String>  entry=(Entry<String, String>)it.next();  
            System.out.println("key:"+entry.getKey()+"   value:"+entry.getValue());
            
        }  
    }
    public static void line(){
        System.out.println("========================华丽的分割线===============================");
    }
}
  Hashmap实际上是一个数组和链表的结合体,利用数组来模拟一个个桶(类似于Bucket Sort)以快速存取不同hashCode的key,对于相同hashCode的不同key,再调用其equals方法从List中提取出和key所相对应的value