先将map集合转成Set集合。然后对set集合进行迭代。
keySet:将所有的键取出存放在Set集合中,对Set集合进行迭代,并通过map集合的get方法,获取键所对应的value。
entrySet:将键值的关系取出存入到了Set集合中。键值关系有自己的类型就是:Map.Entry。
Map.Entry就是Map接口中定义了一个静态接口Entry
可以通过Map.Entry对象的getKey(),getValue().
values()
import java.util.*;
public class HashMapDemo1 {
/**
* @param args
* 存入键值 ,要保证键的唯一性。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String, String> hm=new HashMap<String,String>();
hm.put("zs", "beijing");
hm.put("ls", "nanjing");
hm.put("was", "beijing");
hm.put("zdds", "shenzhen");
hm.put("ls", "tieling"); // 键相同时,存入后存的值
//取出元素第一种方式:keySet()
//将所有的键取出存在SET中,在通过键取出键所对应的值!
Set<String> keSet=hm.keySet();
for (Iterator<String> iterator = keSet.iterator(); iterator.hasNext();) {
String string = iterator.next();
//System.out.println(string+" value: "+hm.get(string));
}
//第二种方式 entrySet()
Set<Map.Entry<String, String>> set2=hm.entrySet();
for (Iterator <Map.Entry<String, String>> iterator = set2.iterator(); iterator.hasNext();) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator
.next();
String key=entry.getKey();
String valueString=entry.getValue();
System.out.println(key+"...."+valueString);
}
//第三种取出方式 values()
Collection<String> co=hm.values();
for (Iterator<String> iterator = co.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.print(string);
}
}
}