Java 中的 hashmap 和 map 之間的區別
Mohammad Irfan
2023年10月12日
本教程介紹了 Java 中 Map
和 HashMap
之間的主要區別。
在 Java 中,Map
是用於以鍵值對儲存資料的介面,而 HashMap
是 Map
介面的實現類。Java 有幾個類(TreeHashMap
,LinkedHashMap
)實現了 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
類
HashMap
是 Map
介面的一個實現類。因此,我們可以使用它來建立鍵值對的集合。請參見下面的示例。
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
是一個介面,我們可以使用它來儲存其實現類的引用,例如 HashMap
,TreeMap
等。我們可以將 TreeMap
或 HashMap
物件儲存在 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
物件作為引數。因此,在呼叫時,我們可以傳遞任何類的物件,例如 HashMap
或 HashTable
。請參見下面的示例。
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 中的對映過濾
- 在 Java 中將 Stream 元素轉換為對映
- 在 Java 中將列表轉換為 map
- 在 Java 中將 map 值轉換為列表
- 用 Java 建立 map
- 在 Java 中建立有序對映