java遍历map集合_Java中遍历Map集合方式

该博客介绍了两种遍历Java HashMap的方法:1) 通过Map.Entry遍历并修改value;2) 通过keySet遍历并获取value。示例代码展示了如何遍历并打印key-value对,以及如何在遍历过程中更改value。

public static void main(String[] args) {

// TODO Auto-generated method stub

//总结:

//1:(通过Map.Entry 类) 通过map.entrySet()得到泛型为Entry的Set集合 然后 froeach遍历

//通过 entry.getKey() or entry.getValue() 方法得到 键值

//2:通过map.keySet() 得到所有key的set集合 然后for循环遍历set集合

//通过遍历set得到每一个key 然后 map.get(key)得到每一个key对应的value

Map map = new HashMap();

map.put("a", 1);

map.put("b", 2);

map.put("c", 3);

map.put("d", 4);

map.put("e", 5);

//方法一:

for(Map.Entry entry : map.entrySet()){

//if(entry.getValue() == 3){//核心:entry

//entry.setValue(10);//通过setValue()方法可改变对应项的value

//}

String key = entry.getKey();

Integer value = entry.getValue();

System.out.println("key:"+key+" value:"+value);

}

System.out.println("--------------------------------------------");

//方法二:

//for(Iterator i = map.keySet().iterator();i.hasNext();){

//String key = i.next();

//System.out.println("key:"+key+" value:"+map.get(key));

//}

//System.out.println("--------------------------------------------");

////方法三:

//for(String key : map.keySet()){

//System.out.println("key:"+key+" value:"+map.get(key));

//}

System.out.println("--------------------------------------------");

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-10-26 11:41

浏览 1050

评论

### Java遍历 Map 集合的方法 在 Java 中,`Map` 是一个用于存储键值对的数据结构。为了有效地遍历 `Map`,存在多种方法可供选择。以下是几种常见且高效的方式遍历 `Map`。 #### 1. 使用增强 for 循环与 entrySet() 这种方法被认为是较为简洁和直观的选择之一。通过调用 `entrySet()` 方法获取所有条目的集合,并利用增强 for 循环迭代这些条目: ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, String> languages = new HashMap<>(); languages.put("J", "Java"); languages.put("K", "Kotlin"); languages.put("G", "Groovy"); for (Map.Entry<String, String> entry : languages.entrySet()) { System.out.println(entry.getKey() + "=" + entry.getValue()); } } } ``` 此方式不仅提高了可读性还减少了冗余操作[^1]。 #### 2. 利用 Iterator 迭代 keySet 或者 entrySet 当需要更灵活地控制循环过程时,可以采用显式的 `Iterator` 来遍历 `keySet()` 或者 `entrySet()`: ```java import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, String> languages = new HashMap<>(); languages.put("J", "Java"); languages.put("K", "Kotlin"); languages.put("G", "Groovy"); Iterator<Map.Entry<String, String>> iterator = languages.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, String> entry = iterator.next(); System.out.println(entry.getKey() + "=" + entry.getValue()); // 如果满足某些条件还可以在此处移除元素 // iterator.remove(); } } } ``` 这种方式允许开发者在遍历时安全地修改集合的内容(如删除),而不会抛出并发修改异常[^2]。 #### 3. Lambda 表达式配合 forEach 自 Java 8 起引入了 lambda 表达式以及流 API,这使得编写更加函数化的代码成为可能。对于简单的遍历需求来说,可以直接使用 `forEach` 结合 lambda 实现优雅的一行解决方案: ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, String> languages = new HashMap<>(); languages.put("J", "Java"); languages.put("K", "Kotlin"); languages.put("G", "Groovy"); languages.forEach((k, v) -> System.out.println(k + "=" + v)); } } ``` 这种风格特别适合于那些只需要执行简单动作而不涉及复杂逻辑的情况[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值