map的两种传统输出方式:
package com.java.study; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.Map.Entry; public class TestMap { public static void main(String[] args) { //两种方法实现map的输出 Map map = new HashMap(); map.put(1,"yyyy"); map.put(2, "oooo"); map.put(3, "uuuu"); map.put(4, "jjjj"); //第一种方法 Set set = map.keySet(); Iterator ite = set.iterator(); while(ite.hasNext()) { Integer key = (Integer)ite.next(); String value = (String)map.get(key); System.out.println(key + "=" + value); } //第二种方法 Set set1 = map.entrySet(); Iterator it = set1.iterator(); while(it.hasNext()) { Entry entry = (Entry) it.next(); Integer key = (Integer) entry.getKey(); String value = (String) entry.getValue(); System.out.println(key + "=" + value); } } }
输出结果为:
1=yyyy 2=oooo 3=uuuu 4=jjjj 1=yyyy 2=oooo 3=uuuu 4=jjjj
因为增强for循环只能用在数组和实现Iterator接口的集合类中,Map须经转换后使用,如下:
package com.java.study; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.Map.Entry; public class TestMap1 { public static void main(String[] args) { Map map = new HashMap(); map.put(1,"yyyy"); map.put(2, "oooo"); map.put(3, "uuuu"); map.put(4, "jjjj"); //第一种方式使用增强for循环 for(Object obj : map.keySet()) { Integer key = (Integer)obj; String value = (String)map.get(key); System.out.println(key + "=" + value); } //第二种方式使用增强for循环 for(Object obj:map.entrySet()) { Entry entry = (Entry)obj; Integer key = (Integer) entry.getKey(); String value = (String) entry.getValue(); System.out.println(key + "=" + value); } } }
结果为:
1=yyyy 2=oooo 3=uuuu 4=jjjj 1=yyyy 2=oooo 3=uuuu 4=jjjj
注意:增强for循环只能用做数据的输出,不能实现数据的更改。