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){//遍历keyfor (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遍历的四种方法和优缺点

相关文章:

你感兴趣的文章:

标签云: