Map中的迭代 有两种 方式
遍历 Map的方法:
1 Set<K> KeySet(): 获取所有的键,得到set集合,迭代, 通过get( key)获取值!
2 Set<Map.Entry<K,V>> entrySet()
把集合中的每一个键值对 形成的映射关系获取到。存到一个Set 集合中。在遍历Set 集合。每次遍历到的就是一个映射关系。 从这个映射关系 即可以得到 键 和 值!
这种 映射关系 是 Map.Entry类型。
Entry 是 Map的 静态接口?
因为 有了键值对 才会存在 映射关系。所以这种映射关系是属于 集合内部事物。要在 集合内部描述。所以在Map 接口中定义了惊静态的Entry. Map.entry<K,V>
代码如下:
HashMap<StudentD,String> hm = new HashMap<StudentD,String>();
hm.put(new StudentD("xiaobai",23),"shanghai");
hm.put(new StudentD("wanghei",20),"beijing");
hm.put(new StudentD("lisi",28),"shenzhen");
hm.put(new StudentD("lisi",28),"shenzhen");
// Map 第一种 迭代方式 根据 key 找 value
Set<StudentD> set=hm.keySet();
for(Iterator<StudentD> ite = set.iterator();ite.hasNext();)
{
StudentD stu = ite.next();
String value = hm.get(stu);
sop(stu+"的地址是:"+value);
}
// map 的 第二种 迭代方式 获取 键值对,entry 获取其中的 key 和 value
Set<Map.Entry<StudentD,String>> entry = hm.entrySet();
for(Iterator<Map.Entry<StudentD,String>> ite = entry.iterator();ite.hasNext();)
{
Map.Entry<StudentD,String> kv = ite.next();
StudentD key = kv.getKey();
String value = kv.getValue();
sop(key+"的地址是:"+value);
}