HashMap 的使用

记录 Java HashMap 的使用方法

构造函数

HashMap 共有4个构造函数,如下:

1
2
3
4
HashMap()   //  默认构造函数
HashMap(int capacity) // 指定“容量大小”的构造函数
HashMap(int capacity, float loadFactor) // 指定“容量大小”和“加载因子”的构造函数
HashMap(Map<? extends K, ? extends V> map) // 包含“子Map”的构造函数

方法

HashMap 的API,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void clear()
V get(Object key)
V put(K key, V value)
V remove(Object key)
boolean containsKey(Object key)
boolean containsValue(Object value)
boolean isEmpty()
int size()

Object clone()
Set<K> keySet()
Collection<V> values()
Set<Entry<K, V>> entrySet() // 返回 HashMap 中所有 Entry 的集合
void putAll(Map<? extends K, ? extends V> map) // 将 map 的全部元素都添加到 HashMap 中

实例

HashMap 的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.util.HashMap;
import java.util.Iterator;
public class HashMapTest {
public static void main(String[] args) {
System.out.println("----HashMap----");

// 在 HashMap 中的对象是无序的
HashMap<String, Integer> hm = new HashMap<String, Integer>();
hm.put("a",11);
hm.put("b",22);
hm.put("c",33);

// 测试是否包含关键字"a"
System.out.println(hm.containsKey("a"));
System.out.println(hm.containsKey("d"));
System.out.println(hm.get("a"));
System.out.println(hm.entrySet());

// 遍历
Iterator<?> it = hm.entrySet().iterator();
while(it.hasNext()) {
System.out.println(it.next());
}

// Set keySet() 返回关键字的集合
it = hm.keySet().iterator();
while(it.hasNext()) {
System.out.println(hm.get(it.next()));
}

// Collection values() 返回值的集合
it = hm.values().iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}

Output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
----HashMap----
true
false
11
[b=22, c=33, a=11]
b=22
c=33
a=11
22
33
11
22
33
11