Menu Close

Java HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射,实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,HashMap 是无序的,即不会记录插入的顺序。HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

Java HashMap的功能

a)可以通过形成 key-value对将存储在映射中。可以通过将密钥传递给正确的方法来使用该密钥检索该值。

b)如果Map中存在任何元素,它将抛出’ NoSuchElementException’

c)HashMap仅存储 对象引用。这就是为什么无法使用double或int这样的原始数据类型的原因。请使用包装器类(例如Integer或Double)。

在Java中使用HashMap

在Java程序中使用HashMaps:

以下是两种声明哈希映射的方法:

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

重要的Hashmap方法

  • get(Object KEY)                                     将返回与此Java哈希图中的指定键关联的值。
  • 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", "张三");
    objMap.put("age", "18");
    objMap.put("sex", "男");
    System.out.println(objMap);
  }
}

输出:

{name=张三, age=18, sex=男}

示例2:从HashMap中删除一个值

import java.util.*;  
public class HashMapExample {  
   public static void main(String args[]) {  
   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("Before Remove: "+ map);    
   map.remove(5);  
   System.out.println("After Remove: "+ map);
   }
}

输出:

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

Hash Map问与答

问:如何确定是否为您分配了特定的key?

答:使用containsKey(Object KEY)方法,如果我有给定键的值,它将返回一个布尔值。

问:如何查找map上显示的所有可用key?

答:我有一个称为keyset()的方法,该方法将返回map上的所有key。在上面的示例中,

如果您将一行写为 System.out.println(objMap.keySet());

output:
[name,age,sex]

同样,如果您只需要所有的value,可以使用 values() 方法
System.out.println(objMap.values());

output:
[张三,18,男]

问:假设只需要从Map中删除一个特定的键,是否需要删除整个Map?

答:不需要,有一个remove(Object KEY)的方法,该方法将仅删除该特定键值对。

问:如何检查是否实际包含一些键值对?

答:使用isEmpty()方法

 

Posted in Java

发表评论

相关链接