Java HashMap 介紹

Java 中的 HashMap 基本上就是將唯一的鍵指定為可以在任何給定的位置可以檢索的相應的值。

Java Hashmap 的特點

A. 可以通過形成鍵值對儲存在對映中。通過將鍵傳遞給正確的方法,可以使用鍵檢索該值。

B. 如果其中沒有元素,它將丟擲 NoSuchElementException

C. HashMap 僅儲存物件引用。這就是為什麼 HashMap 中不可能使用原始資料型別doubleint,而是使用封裝類(如 IntegerDouble)來代替。

在 Java 程式中使用 HashMap:

以下是宣告 HashMap 的兩種方法:

HashMap<String, Object> map = new HashMap<String, Object>();
HashMap x  = new HashMap();

重要的 Hashmap 方法

  • get(Object KEY) - 這將返回與此 Java hashmap 中指定鍵關聯的值。
  • put(Object KEY,String VALUE) - 此方法儲存指定的值,並將其與此對映中的指定鍵相關聯。

Java Hashmap 示例

以下是 java Hash Map 的示例實現:

import java.util.HashMap;
import java.util.Map;
public class Sample_TestMaps{
  public static void main(String[] args){
    Map<String, String> objMap = new HashMap<String, String>();
    objMap.put("Name", "Suzuki");
    objMap.put("Power", "220");
    objMap.put("Type", "2-wheeler");
    objMap.put("Price", "85000");
    System.out.println("Elements of the Map:");
    System.out.println(objMap);
  }
}

輸出:

Elements of the Map:
{Type=2-wheeler, Price=85000, Power=220, Name=Suzuki}

示例 2:根據鍵從 HashMap 中刪除一個值

import java.util.*;  
public class HashMapExample {  
   public static void main(String args[]) {  
   //create and populate hash map  
   HashMap<Integer, String> map = new HashMap<Integer, String>();           
   map.put(1,"Java");  
   map.put(2, "Python");  
   map.put(3, "PHP");  
   map.put(4, "SQL");
   map.put(5, "C++");
   System.out.println("Tutorial in Tastones: "+ map);    
   //Remove value of key 5  
   map.remove(5);  
   System.out.println("Tutorial in Tastones After Remove: "+ map);
   }
}

輸出:

Tutorial in Tastones: {1=Java, 2=Python, 3=PHP, 4=SQL, 5=C++}
Tutorial in Tastones After Remove: {1=Java, 2=Python, 3=PHP, 4=SQL}

HashMap 問答

  1. 如何找到特定的鑰匙給你? 你可以使用 containsKey(Object KEY)方法,如果我有給定鍵的值,它將返回 true

  2. 如何查詢 HashMap 上的所有可用鍵? HashMap 有一個名為 keyset() 的方法,它將返回 HashMap 上的所有鍵。 在上面的示例中,如果你將一行寫為 -System.out.println(objMap.keySet()); 它的將返回輸出如下,

    [Name, Type, Power, Price]
    

同樣,如果只需要所有值,它有一個 values() 的方法。

System.out.println(objMap.values()); 

它將返回輸出如下,

[Suzuki, 2-wheeler, 220, 85000] 
  1. 假設我需要從 HashMap 中刪除一個特定的鍵,是否需要刪除整個 Map? 不需要!HashMap 有一個 remove(Object KEY) 的方法,它只刪除該特定的鍵值對。

  2. 我們如何檢查 HashMap 中是否確實包含一些鍵值對而不是一個空的? 使用 isEmpty() 方法就可以。