map的遍历方式
@org.junit.Test
public void testHashMap() {
Map<String, String> map = new HashMap<>(4);
map.put("a", "抗美援朝");
map.put("b", "唐山大地震");
map.put("c", "我和我的祖国");
map.put("d", "我和我的家乡");
System.out.println("------------------- map.keySet()-------------------------");
//获取所有的 key,根据 key 取出对应的value
for (String key : map.keySet()) {
System.out.println("key:" + key + ",value:" + map.get(key));
}
System.out.println("------------------获取map种所有的value:map.values()--------------------------");
//遍历所有的value
for (String value : map.values()) {
System.out.println("value:" + value);
}
System.out.println("-------------------获取键值对:map.entrySet()-------------------------");
//取出对应的 key,value 键值对,容量大时推荐使用
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("键值对:" + entry);
//获取 键值对的 key
System.out.println("key:" + entry.getKey());
//获取 键值对的 value
System.out.println("value:" + entry.getValue());
}
System.out.println("--------------------- 通过 Map.entrySet使用iterator遍历 key 和 value -----------------------");
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());
}
System.out.println("-------------------- map.forEach JDK1.8 新特性 ----------------------");
map.forEach((key, value) -> {
System.out.println("key=" + key + ",value=" + value);
});
}
推荐:
使用 entrySet 遍历 Map 类集合 KV,而不是 keySet 方式进行遍历。
说明: keySet 其实是遍历了 2 次,一次是转为 Iterator 对象,另一次是从 hashMap 中取出key 所对应的 value。而 entrySet 只是遍历了一次就把 key 和 value 都放到了 entry 中,效率更高。
如果是 JDK8,使用 Map.foreach 方法。
正例: values()返回的是 V 值集合,是一个 list 集合对象; keySet()返回的是 K 值集合,是一个 Set 集合对象; entrySet()返回的是 K-V 值组合
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!