以简洁明了的方式用特定的键值对初始化 Java HashMap 对于开发人员来说是一个难以捉摸的功能。然而,Java 的进步为简化地图创建铺平了道路。
从 Java 版本 9 开始,Map 类引入了简化地图创建的工厂方法:
Map.of:可以创建最多包含使用简洁语法的 10 个元素:
Map<String, String> test1 = Map.of("a", "b", "c", "d");
Map.ofEntries:使用任意数量的元素创建地图:
import static java.util.Map.entry; Map<String, String> test2 = Map.ofEntries( entry("a", "b"), entry("c", "d") );
但是,需要注意的是,这些方法会产生不可变的映射。对于可变映射,您可以使用以下命令创建副本:
mutableMap = new HashMap<>(Map.of("a", "b"));
在 Java 9 之前,不支持直接文字初始化。为了达到类似的效果,您可以采用以下技术:
带有初始化器的匿名类:定义一个匿名子类,在其构造函数中初始化映射:
Map<String, String> myMap = new HashMap<String, String>() {{ put("a", "b"); put("c", "d"); }};
函数初始化:创建一个函数来生成映射并在初始化器中使用它:
Map<String, String> myMap = createMap(); private static Map<String,String> createMap() { Map<String,String> myMap = new HashMap<String,String>(); myMap.put("a", "b"); myMap.put("c", "d"); return myMap; }
后一种方法更干净,避免了与匿名子类相关的任何潜在陷阱。
以上是如何在Java中高效地初始化HashMap?的详细内容。更多信息请关注PHP中文网其他相关文章!