原理:map中是没有迭代器的,collection具备迭代器,只要将map集合转成Set集合,可以使用迭代器了。
之所以转成set,是因为map集合具备着键的唯一性,其实set集合就来自于map,set集合底层其实用的就是map的方法。
把map集合转成set的方法:
Set<k> keySet(); 将map中所有的键存到Set集合。
Set<k,value> entrySet();//取的是键和值的映射关系。
Entry就是Map接口中的内部接口;
为什么要定义在map内部呢?entry是访问键值关系的入口,是map的入口,访问的是map中的键值对。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
public class MapDemoMy {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("01", "java01");
map.put("02", "java02");
map.put("03", "java03");
map.put("04", "java04");
System.out.println("//Map遍历方法一");
Set<String> keySet = map.keySet();
Iterator<String> iterator = keySet.iterator();
while(iterator.hasNext())
{
String next = iterator.next();
System.out.println(next+":"+map.get(next));
}
System.out.println("//Map遍历方法二");
Set<Entry<String, String>> entrySet = map.entrySet();
Iterator<Entry<String, String>> iterator2 = entrySet.iterator();
while(iterator2.hasNext())
{
//System.out.println(iterator2.next());
Entry<String, String> next = iterator2.next();
System.out.print(next.getKey()+":"+next.getValue());
System.out.println();
}
}
}