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() 方法就可以。