Map集合本身不能直接为Iterator实例化。通常可用如下方式实现Map集合的输出:
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* Map集合的输出
* @author well
*
*/
public class MapDemo2 {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<>();
map.put(1, "well");
map.put(2,"lily");
map.put(3, "tom");
System.out.println(map);//{1=well, 2=lily, 3=tom}
System.out.println("==============");
/*
* 1.通过entrySet方法变成Set对象
* 2.调用Set的Iterator方法,此时每个Iterator对象是Map.Entry对象
* 3.使用getKey() 和 getValue() 方法分离 key 和 value
*/
Set<Entry<Integer, String>> entrys = map.entrySet();
for (Entry<Integer, String> entry : entrys) {
//System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
System.out.println("==============");
/*
* 1.通过keySet得到Map集合里所有key的Set集合
* 2.调用Set的Iterator方法,此时每个Iterator对象是key值
* 3.通过Map的getValue(key)方法得到value值
*/
Set<Integer> keys = map.keySet();
for (Integer k : keys) {
//System.out.println(k);
System.out.println(map.get(k));
}
System.out.println("==============");
/*
* 调用Map的values()方法得到map中所有值的Collection集合
*/
Collection<String> vals = map.values();
for (String v : vals) {
System.out.println(v);
}
}
}