Java HashMap类
HashMap类使用一个哈希表实现Map接口。这允许基本操作,如get()和put()的执行时间保持恒定,即使对于大型集。
HashMap类支持四种构造函数。第一种形式构造一个默认的哈希映射:
HashMap( )
第二种形式初始化哈希映射使用m的元素:
HashMap(Map m)
第三种形式初始化哈希映射容量的能力:
HashMap(int capacity)
第四种形式初始化双方的容量,并通过使用它的参数填补了哈希映射的比例:
HashMap(int capacity, float fillRatio)
除了从它的父类继承的方法,HashMap中定义了以下方法:
SN | 方法及描述 |
---|---|
1 |
void clear() 移除所有映射关系从这个映射中。 |
2 |
Object clone() 返回此HashMap实例的浅表副本:键和值本身不被复制。 |
3 |
boolean containsKey(Object key) 如果此映射包含指定键的映射关系返回true。 |
4 |
boolean containsValue(Object value) 如果此映射一个或多个键映射到指定值返回true。 |
5 |
Set entrySet() 返回此映射中包含的映射关系的集合视图。 |
6 |
Object get(Object key) 返回指定键映射在此标识哈希映射,或者null,如果映射不包含此键的值。 |
7 |
boolean isEmpty() 如果此映射不包含键 - 值映射关系返回true。 |
8 |
Set keySet() 返回此映射中包含的键的set视图。 |
9 |
Object put(Object key, Object value) 关联与此映射中的指定键指定的值。 |
10 |
putAll(Map m) 复制所有由指定映射的映射到此映射,这些映射关系将替换此映射的所有当前指定映射中键的所有映射关系。 |
11 |
Object remove(Object key) 从此映射中移除(如果存在)映射为这个键。 |
12 |
int size() 返回键 - 值映射关系在这个映射中的数量。 |
13 |
Collection values() 返回此映射中包含的值的collection视图。 |
例子:
下面的程序说明了几个由这个集合所支持的方法:
import java.util.*; public class HashMapDemo { public static void main(String args[]) { // Create a hash map HashMap hm = new HashMap(); // Put elements to the map hm.put("Zara", new Double(3434.34)); hm.put("Mahnaz", new Double(123.22)); hm.put("Ayan", new Double(1378.00)); hm.put("Daisy", new Double(99.22)); hm.put("Qadir", new Double(-19.08)); // Get a set of the entries Set set = hm.entrySet(); // Get an iterator Iterator i = set.iterator(); // Display elements while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ": "); System.out.println(me.getValue()); } System.out.println(); // Deposit 1000 into Zara's account double balance = ((Double)hm.get("Zara")).doubleValue(); hm.put("Zara", new Double(balance + 1000)); System.out.println("Zara's new balance: " + hm.get("Zara")); } }
这将产生以下结果:
Zara: 3434.34 Mahnaz: 123.22 Daisy: 99.22 Ayan: 1378.0 Qadir: -19.08 Zara's new balance: 4434.34