最常用方式是调用 keySet() 方法获取键的 Set 视图,该视图是实时、可删不可增的;可转为数组或 List,遍历时需注意 null key 的安全处理。

Java 中 HashMap 获取所有 Key 集合,最常用、最直接的方式是调用 keySet() 方法,它返回一个包含所有键的 Set 视图。
keySet() 返回的是 Set 视图,不是独立副本
这个 Set 是 HashMap 内部结构的“实时视图”,对它的修改(如调用 remove())会直接影响原 HashMap;但不能通过它添加新 key(会抛 UnsupportedOperationException)。
- ✅ 安全操作:遍历、检查是否存在、删除已有 key
- ❌ 禁止操作:
add()、addAll()等写入方法
想转成数组或 List?可以进一步转换
如果需要数组或可变集合,可基于 keySet() 做转换:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 转为数组:
Object[] keys = map.keySet().toArray(); - 转为 ArrayList:
new ArrayList(map.keySet()) - Java 8+ 转为不可变 List:
List.copyOf(map.keySet())
遍历所有 key 的常见写法
推荐使用增强 for 循环或 forEach,简洁且安全:
立即学习“Java免费学习笔记(深入)”;
- 传统遍历:
for (K key : map.keySet()) { ... } - Lambda 遍历:
map.keySet().forEach(key -> System.out.println(key));
注意 null key 的情况
HashMap 允许一个 null key,它也会被包含在 keySet() 返回的集合中。遍历时若逻辑涉及解引用,需提前判空:
if (key != null) { ... }- 或使用
Objects.toString(key)安全打印

















