Java 中的 hashmap 和 map 之間的區別

Mohammad Irfan 2023年10月12日
  1. Java 中的 Map 介面
  2. Java 中的 HashMap
  3. 在 Java 中使用 Map 引用來儲存物件
  4. 在 Java 中使用 Map 引用儲存物件
Java 中的 hashmap 和 map 之間的區別

本教程介紹了 Java 中 MapHashMap 之間的主要區別。

在 Java 中,Map 是用於以鍵值對儲存資料的介面,而 HashMapMap 介面的實現類。Java 有幾個類(TreeHashMapLinkedHashMap)實現了 Map 介面,以將資料儲存到鍵值對中。讓我們看一些例子。

Java 中的 Map 介面

不能單獨使用 Map 介面來儲存資料,但是我們可以建立其實現類的物件,然後使用 Map 引用來儲存物件。在這裡,我們使用 HashMap 類來儲存資料,並使用 Map 介面來儲存該類的引用。請參見下面的示例。

import java.util.HashMap;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}

輸出:

{One=1, Two=2, Three=3}

Java 中的 HashMap

HashMapMap 介面的一個實現類。因此,我們可以使用它來建立鍵值對的集合。請參見下面的示例。

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}

輸出:

{One=1, Two=2, Three=3}

在 Java 中使用 Map 引用來儲存物件

由於 Map 是一個介面,我們可以使用它來儲存其實現類的引用,例如 HashMapTreeMap 等。我們可以將 TreeMapHashMap 物件儲存在 Map 介面中。請參見下面的示例。

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
    Map<String, Integer> tmap = new TreeMap<>(map);
    System.out.println(tmap);
  }
}

輸出:

{One=1, Two=2, Three=3}
{One=1, Three=3, Two=2}

在 Java 中使用 Map 引用儲存物件

這是在與實現類一起使用時使用 Map 參考的重要示例。瞧,我們有一個方法以 Map 物件作為引數。因此,在呼叫時,我們可以傳遞任何類的物件,例如 HashMapHashTable。請參見下面的示例。

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

public class SimpleTesting {
  static void printMap(Map<String, Integer> map) {
    for (String key : map.keySet()) {
      System.out.println(key + ":" + map.get(key));
    }
  }
  public static void main(String[] args) {
    HashMap<String, Integer> hashmap = new HashMap<>();
    hashmap.put("One", 1);
    hashmap.put("Two", 2);
    hashmap.put("Three", 3);
    printMap(hashmap);
    TreeMap<String, Integer> tmap = new TreeMap<>(hashmap);
    printMap(tmap);
    LinkedHashMap<String, Integer> lmap = new LinkedHashMap<>(hashmap);
    printMap(lmap);
  }
}

執行如下程式碼。

Java SimpleTesting 10 20

輸出:

10
20

相關文章 - Java Map

相關文章 - Java HashMap