首頁 >Java >java教程 >如何在Java中有效率地初始化HashMap?

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

Patricia Arquette
Patricia Arquette原創
2024-12-25 13:52:13758瀏覽

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