Map元素遍历的两种方法

 原理: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();
  }
 }
}

你可能感兴趣的:(Map元素遍历的两种方法)