map的常见的遍历方法
1 package map; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map.Entry; 6 public class MapTraversal { 7 public static void main(String[] args) { 8 HashMap<String, Object> m=new HashMap<String , Object>(); 9 m.put("haha","123"); 10 m.put("yiyi", "456"); 11 m.put("caca", "789"); 12 13 //第一种:通过Map.keySet遍历key和value 14 System.out.println("通过Map.keySet遍历key->value"); 15 for(String i:m.keySet()){ 16 Object str = m.get(i);//得到每个key多对用value的值 17 System.out.println(i + " " + str); 18 } 19 20 //第二种:通过Map.entrySet遍历key和value:(当大容量的时候推荐) 21 System.out.println("通过Map.entrySet遍历key和value"); 22 for (Entry<String, Object> entry : m.entrySet()) { 23 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 24 } 25 26 //第三种通过Map.entryset使用iterator遍历key和value 27 System.out.println("通过Map.entryset使用iterator遍历key和value"); 28 Iterator<Entry<String, Object>> it = m.entrySet().iterator(); 29 while (it.hasNext()) {//hasNext()判断是否还有元素 30 Entry<String, Object> entry = it.next();//获取下一个元素 31 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 32 } 33 //第四种 34 System.out.println("通过Map.values()遍历所有的value,但不能遍历key"); 35 for (Object v : m.values()) { 36 System.out.println("value= " + v); 37 } 38 39 } 40 41 }
输出结果:
通过Map.keySet遍历key->value
haha 123
caca 789
yiyi 456
通过Map.entrySet遍历key和value
key= haha and value= 123
key= caca and value= 789
key= yiyi and value= 456
通过Map.entryset使用iterator遍历key和value
key= haha and value= 123
key= caca and value= 789
key= yiyi and value= 456
通过Map.values()遍历所有的value,但不能遍历key
value= 123
value= 789
value= 456