Java Map 迭代

时间:2023-03-09 07:25:19
Java Map 迭代

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);
}