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