如何创建映射java
创建映射(Map)在 Java 中的方法
在 Java 中,映射(Map)是一种键值对(Key-Value)数据结构,常用的实现类包括 HashMap、TreeMap 和 LinkedHashMap。以下是几种常见的创建和使用映射的方法。
使用 HashMap 创建映射
HashMap 是最常用的映射实现,基于哈希表,提供快速的插入和查找操作。
import java.util.HashMap;
import java.util.Map;
Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);
System.out.println(map.get("apple")); // 输出 10
使用 TreeMap 创建映射
TreeMap 基于红黑树实现,键值对按自然顺序或自定义比较器排序。
import java.util.TreeMap;
import java.util.Map;
Map<String, Integer> map = new TreeMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);
System.out.println(map); // 输出 {apple=10, banana=20, orange=30}(按键排序)
使用 LinkedHashMap 创建映射
LinkedHashMap 保留插入顺序或访问顺序,适合需要保持顺序的场景。
import java.util.LinkedHashMap;
import java.util.Map;
Map<String, Integer> map = new LinkedHashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 30);
System.out.println(map); // 输出 {apple=10, banana=20, orange=30}(按插入顺序)
使用 Java 9+ 的工厂方法创建不可变映射
从 Java 9 开始,可以使用 Map.of() 或 Map.ofEntries() 创建不可变映射。
Map<String, Integer> immutableMap = Map.of(
"apple", 10,
"banana", 20,
"orange", 30
);
System.out.println(immutableMap.get("banana")); // 输出 20
初始化时直接填充数据
可以使用双括号初始化(匿名内部类方式),但不推荐用于生产环境,因为可能引发内存泄漏。
Map<String, Integer> map = new HashMap<String, Integer>() {{
put("apple", 10);
put("banana", 20);
put("orange", 30);
}};
System.out.println(map.get("orange")); // 输出 30
遍历映射
可以通过 entrySet()、keySet() 或 values() 遍历映射。

for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
map.keySet().forEach(key -> System.out.println(key));
map.values().forEach(value -> System.out.println(value));
注意事项
HashMap的键和值允许为null,而TreeMap不允许键为null。- 在多线程环境下,可以使用
ConcurrentHashMap或Collections.synchronizedMap()包装普通映射。 - 不可变映射(如
Map.of()创建的)在尝试修改时会抛出UnsupportedOperationException。
根据需求选择合适的映射实现类,并注意线程安全和性能问题。






