遍历Map的四种方法

来源:互联网 发布:超星查找自己的网络课 编辑:程序博客网 时间:2024/05/16 02:01


public static void main(String[] args) {


  Map<String, String> map = new HashMap<String, String>();
  map.put("1", "value1");
  map.put("2", "value2");
  map.put("3", "value3");
  
  //第一种:普遍使用,二次取值
  System.out.println("通过Map.keySet遍历key和value:");
  for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
  }
  
  //第二种
  System.out.println("通过Map.entrySet使用iterator遍历key和value:");
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  
  //第三种:推荐,尤其是容量大时
  System.out.println("通过Map.entrySet遍历key和value");
  for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

  //第四种
  System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
  for (String v : map.values()) {
   System.out.println("value= " + v);
  }
 }

总结:以上四种遍历Map的方法中第四种应用的场合应该比较少,最起码我到现在为止还没有在开发过程中需要用到这种方式,前三种的遍历方法其实在本质上是一样的,都是

将map转换成set然后在进行遍历,转换的方式分为两种分别为keyset() 和 entrySet(),遍历也分为两种方式第一种就是利用collection接口的iterator迭代器

进行迭代,另外一种就是利用foreach循环进行,从代码的简洁度上来将的话,还是推荐利用foreach循环来进行遍历,而且iterator的next()方法如果使用不当的话

还可能出现不必要的错误。

----------------------------------------------------------------------------------------

important:截至到目前为止jdk的最新版本为1.8,在1.8中比较重要的更新可以说是函数式编程了(lambda表达式),对集合的遍历提供了更加方便的操作,如果你现在用的jdk为1.8,那么恭喜你了,你可以使用下面这种更加便捷的方式来对map进行遍历

map.forEach((key,value)-> System.out.println(key+" "+value));


0 0
原创粉丝点击