首页 >Java >java教程 >如何在Java中高效地初始化HashMap?

如何在Java中高效地初始化HashMap?

Patricia Arquette
Patricia Arquette原创
2024-12-25 13:52:13763浏览

How Can I Initialize a HashMap in Java Efficiently?

初始化 HashMap 文字

以简洁明了的方式用特定的键值对初始化 Java HashMap 对于开发人员来说是一个难以捉摸的功能。然而,Java 的进步为简化地图创建铺平了道路。

Java 9 及更高版本:工厂方法

从 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 8 及更早版本:匿名类或函数

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn