/*
map接口中没有迭代器,那么该怎么遍历?
1:Set<K> keySet() :获取到所有的键,存储到一个Set集合中,并返回该集合,因为Set有迭代器,
每次迭代出来的是一个键,再根据键来得到值
2:Set<Map.Entry<K,V>> entrySet():获取到所有的键值对儿形成的映射关系,存到一个Set集合中,再迭代这个集合
每次迭代出来的是一个映射关系,从这个映射关系中既可以得到键,也可以得到值
这种映射关系是Map.Entry<K,V>类型的
Entry是定义在Map中的一个静态成员,是一个接口
Entry为什么定义在Map里边儿?
有了集合,有了集合中的键值对儿,才会存在映射关系,所以映射关系是对集合内部的事物描述
所以定义在Map的内部
*/
import java.util.*;
class Demo
{
public static void main(String[] args)
{
HashMap<String,String> map = new HashMap<String,String>();
map.put("001","zhangsan");
map.put("002","xuzhong");
map.put("003","lisi");
//使用 entrySet()遍历集合
Set<Map.Entry<String,String>> entry = map.entrySet();
Iterator<Map.Entry<String,String>> ite = entry.iterator();
while(ite.hasNext())
{
Map.Entry<String,String> en = ite.next();
String key = en.getKey();
String value = en.getValue();
sop(key+"=="+value);
}
//使用keySet()遍历
/*
Set<String> keys = map.keySet();
Iterator<String> ite = keys.iterator();
while(ite.hasNext())
{
String key = ite.next();
String value = map.get(key);
sop(key+"=="+value);
}
*/
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}