Thursday, April 23, 2009

HashMap

Map类
实现java.util.Map接口的对象会将Key映射至Value(值:要存入Map容器的对象)
在将对象存入Map对象时,需要同时给定一个键,要取回对象时可以给定键,这样就可以取得与键对应的对象值
Map中的每一个键都是唯一的,不能有重复的键,Map拥有自己的排序机制

HashMap
实现了Map接口,HashMap在内部实现使用哈希法,能够在很短的时间内寻得键-值匹配
例:
package 对象容器;
import java.util.*;
public class HashMapDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Map map=new HashMap();
String key1="caterpillar";
String key2="justin";
map.put(key1, "caterpiller的信息");
map.put(key2, "justin的信息");
System.out.println(map.get(key1));
System.out.println(map.get(key2));

}

}
运行结果:
caterpiller的信息
justin的信息
put()方法将对象存入,必须同时指定键和值
取回对象时,使用get()方法并指定键,返回的是对应于键的值

可以使用values()方法返回一个实现Collection的对象,其中包括所有的值对象
package 对象容器;
import java.util.*;
public class HashMapDemo2 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Mapmap=new HashMap();

map.put("justin", "justin的信息");
map.put("momor", "momor的信息");
map.put("caterpillar", "caterpillar的信息");

Collection collection=map.values();
Iterator iterator=collection.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println();

for(String value:map.values()){
System.out.println(value);
}

}

}
运行结果:
justin的信息
momor的信息
caterpillar的信息

justin的信息
momor的信息
caterpillar的信息

总结:
只要是实现Collection接口的对象,都可以使用增强的for循环来迭代所有值

使用HashMap的子类java.util.LinkedHashMap 依照插入的顺序来排列
例:
package 对象容器;
import java.util.*;
public class LinkedHashMapDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Map map=new LinkedHashMap();

map.put("justin", "justin的信息");
map.put("momor", "momor的信息");
map.put("caterpillar", "caterpillar的信息");

for(String value:map.values())
System.out.println(value);

}

}
运行结果:
justin的信息
momor的信息
caterpillar的信息

No comments:

Post a Comment