码迷,mamicode.com
首页 > 编程语言 > 详细

java 中map遍历的四种方法和优缺点

时间:2015-04-09 17:24:56      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:java   遍历   map   泛型   

/**
* 在for-each循环中使用entries来遍历
* 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用
* 如果遍历的是一个空的map,会报数组越界 ,java5引入,不兼容老版本
* @param map
*/
public void methodOne(Map<Integer, Integer> map){
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
   System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}
/**
* 在for-each循环中遍历keys或values。
* 如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet
* 比方法一效率高10%
*/
public  void methodTwo(Map<Integer,Integer>map){
//遍历key
for (Integer key : map.keySet()) {
   System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
   System.out.println("Value = " + value);
}
}
/**
* 使用iterator遍历,分为加泛型遍历,不加泛型遍历
* 优点 兼容老版本,遍历时可以调用remove删除,for_each遍历不能删除,遍历速度和for_each一样
*/
public void methodThreeY(Map<Integer,Integer>map){
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
   Map.Entry<Integer, Integer> entry = entries.next();
   System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}
/**
* 没有泛型的iterator遍历
* @param map
*/
public void methodThreeN(Map map){
Iterator entries = map.entrySet().iterator();
while (entries.hasNext()) {
   Map.Entry entry = (Map.Entry) entries.next();
   Integer key = (Integer)entry.getKey();
   Integer value = (Integer)entry.getValue();
   System.out.println("Key = " + key + ", Value = " + value);
}


}
/**
* 通过键值遍历(效率低)
* 代码干净,方法一的替代
*/
public void methodFour(Map<Integer,Integer>map){
for(Integer key : map.keySet()) {
   Integer value = map.get(key);
   System.out.println("Key = " + key + ", Value = " + value);
}
}

java 中map遍历的四种方法和优缺点

标签:java   遍历   map   泛型   

原文地址:http://blog.csdn.net/ldqsxsl/article/details/44962431

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!