Java中怎样遍历Map?

例如我们有一个HashMap,怎样来遍历它呢?

如果希望遍历哈希表中的关键字Key的话,可以采用遍历keySet的方法:

Map<String, Object> map = ...;

for (String key : map.keySet()) {
    // ...
}

如果是需要遍历哈希表中的值Value的话,可以使用values():

for (Object value : map.values()) {
    // ...
}

如果需要遍历Map中的键值对的话,则使用entrySet():

for (Map.Entry<String, Object> entry : map.entrySet()) {
    String key = entry.getKey();
    Object value = entry.getValue();
    // ...
}

但是如果你在遍历的时候需要删除一些元素的话,同样适用entrySet(),参考如下代码:

public static void PrintThenRemoveMapItems(Map mp) {
    Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        System.out.println(pair.getKey() + " = " + pair.getValue());
        it.remove(); // avoids a ConcurrentModificationException
    }
}

 

CODE问答 | CodeWenda.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注

6 + 1 =