Map

AbstractMap

实现了大部分的Map接口。

HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。

TreeMap

继承了AbstractMap,并且使用一颗树。

WeakHashMap

继承AbstractMap类,使用弱密钥的哈希表。

LinkedHashMap

继承于HashMap,使用元素的自然顺序对元素进行排序.

IdentityHashMap

继承AbstractMap类,比较文档时使用引用相等。

遍历Map

我们首先创建一个Map:

Map<Integer, String> map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
map.put(3, "value3");

通过Map.keySet遍历key和value

for (int key : map.keySet()) {
    System.out.println("key="+ key + " and value=" + map.get(key));
}

通过Map.entrySet使用iterator遍历key和value

Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry<Integer, String> entry = it.next();
    System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue());
}

通过Map.entrySet遍历key和value (推荐,尤其是容量大时)

for (Map.Entry<Integer, String> entry : map.entrySet()) {
    System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue());
}

通过Map.values()遍历所有的value,但不能遍历key

for (String v : map.values()) {
    System.out.println("value= " + v);
}

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress