下面是三组(6种),Map 遍历方式的核心代码。
遍历方式有使用到增强for和迭代器。最下面有张图片,对做题有参考意义。
参考代码:
Map map = new HashMap();
map.put("小猫","cat");
map.put("小狗","dog");
map.put("小狗",null);
map.put("小羊","sheep");
map.put("小猪","pig");
map.put(null,"pig");
//第一组:先取出 所有的Key,通过Key取出对应的Value
Set keySet =map.keySet();
//(1)增强for
System.out.println("---第一种方式---");
for (Object key : keySet){
System.out.println(key+"-"+map.get(key));
}
//(2)迭代器
System.out.println("---第二种方式---");
Iterator iterator = keySet.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key+"-"+map.get(key));
}
//第二组:把所有的values取出
Collection values = map.values();
//使用所有的Collections使用的的遍历方法
//(1)增强for
System.out.println("---取出所有的value使用增强for---");
for (Object value :values){
System.out.println(value);
}
//(2)迭代器
System.out.println("---取出所有的value 迭代器---");
Iterator iterator1 = values.iterator();
while(iterator1.hasNext()){
Object value = iterator1.next();
System.out.println(value);
}
//第三组:通过EntrySet 来获取 k-v
Set entrySet = map.entrySet();//EntrySet<Map.Entry<K,V>>
//(1)增强 for
System.out.println("---使用EntrySet的for增强---");
for (Object entry :entrySet){
Map.Entry m =(Map.Entry)entry;
System.out.println(m.getKey()+"-"+m.getValue());
}
//(2)迭代器
System.out.println("---使用EntrySet的迭代器---");
Iterator iterator3 = entrySet.iterator();
while(iterator3.hasNext()){
Object entry = iterator3.next();
Map.Entry m = (Map.Entry)entry;
System.out.println(m.getKey()+"-"+m.getValue());
}
测试结果:
---第一种方式---
小羊-sheep
小猪-pig
null-pig
小狗-null
小猫-cat
---第二种方式---
小羊-sheep
小猪-pig
null-pig
小狗-null
小猫-cat
---取出所有的value使用增强for---
sheep
pig
pig
null
cat
---取出所有的value 迭代器---
sheep
pig
pig
null
cat
---使用EntrySet的for增强---
小羊-sheep
小猪-pig
null-pig
小狗-null
小猫-cat
---使用EntrySet的迭代器---
小羊-sheep
小猪-pig
null-pig
小狗-null
小猫-cat
所写笔记,如有错误,还请见谅,后期发现,及时更改。