六、遍历HashMap的方法。

本文介绍了遍历Java中Map集合的三种常见方法:通过键获取值、通过映射关系获取键和值以及直接获取所有值,并对比了它们的效率。

 1、先遍历Map集合中所有的键,再根据键获取相应的值。
  Set keySet = map.keySet();    //调用Map对象的keySet()方法,获取键的集合
  Iterator it = keySet.iterator();  //获取Iterator对象
  while(it.hasNext()) { //it.hasNext()判断it对象中有没有下一条数据有则返回true
    Object key = it.next();
    Objecy value = map.get(key);    //获取每个键所对应的值
    System.out.println(key+":"+value);
  }
  效率低。


  2、第二种方法,先获取集合中的所有的映射关系,然后从映射关系中取出键和值。
   Set entrySet = map.entrySet();   //调用Map对象的entrySet()方法获得存储在Map中所有映射的Set集合
   Iterator it = entrySet.iterator();
   while(it.hasNext()){
     Map.Entry entry = (Map.Entry) (it.next());
     Object key = entry.getKey();
     Object value = entry.getValue();
     System.out.println(key+":"+value);
   }
   效率高
   3、在Map中,还提供了一个values()方法,通过这种方法可以直接获取Map中存储所有值的Collection集合。
在 Java 中,遍历 HashMap 有多种方式,以下为你详细介绍: ### 使用 for-each 循环遍历 entrySet 使用 for-each 循环是遍历 HashMap 中最简单的方式之一,适用于 Java 5 及以上版本,实际上是在遍历 HashMap 的 entrySet,能简洁且易于阅读地获取键值对[^1]。 ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("key1", 1); map.put("key2", 2); for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println("Key: " + key + ", Value: " + value); } } } ``` ### 使用迭代器(Iterator)遍历 entrySet 在 Java 开发中,使用迭代器遍历 HashMap 的方式很常见。迭代器不需要将整个 HashMap 加载到内存中,只会在需要时才加载下一个元素,能避免内存溢出问题,还提供了 remove() 方法可以删除当前迭代的元素[^3]。 ```java import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("key1", 1); map.put("key2", 2); Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, Integer> entry = iterator.next(); String key = entry.getKey(); Integer value = entry.getValue(); System.out.println("Key: " + key + ", Value: " + value); } } } ``` ### 仅遍历键(keySet) 若只需要遍历 HashMap 中的键,可以使用 keySet 方法获取所有键的集合,然后进行遍历。 ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("key1", 1); map.put("key2", 2); for (String key : map.keySet()) { System.out.println("Key: " + key); } } } ``` ### 仅遍历值(values) 如果只需要遍历 HashMap 中的值,可以使用 values 方法获取所有值的集合,然后进行遍历。 ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("key1", 1); map.put("key2", 2); for (Integer value : map.values()) { System.out.println("Value: " + value); } } } ``` ### Java 8 的 Lambda 表达式和 forEach 方法 在 Java 8 及以上版本,可以使用 Lambda 表达式和 forEach 方法遍历 HashMap,代码更加简洁。 ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("key1", 1); map.put("key2", 2); map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value)); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值