2024年4月12日发(作者:)

技术核心问题 ........................................................................................................................................................................... 2

1. map 如何迭代 ......................................................................................................................................................... 2

技术核心问题

1. map 如何迭代

在java中有很多种方法来遍历map。接下来我们就回顾下最常用的方法,并且比较下他们的优缺点。 各种map

在java中都实现了map接口,下面的方法适合任何一种map,只要是实现了map接口的。像

hashmap,treemap,LinkeHashMap,Hashtable等等。

方法#1:通过通过循环entries 来遍历map

这种方法是最通用和效率比较好的方法。适合同时需要map的key 和value的情况。

Map map = new HashMap();

for ( entry : et()) {

n("Key = " + () + ", Value = " + ue());

}

由于foreach循环是在java5开始有的,所以这种方法适合比较新的版本。而且这个循环会抛空指针错误,如果

你循环的map 为null,所以使用时候要检查是否为null.

方法#2 通过循环key和value 来遍历

如果你只是需要map的key或者values ,你可以循环遍历entrySet的keySet或者values

Map map = new HashMap();

//iterating over keys only

for (Integer key : ()) {

n("Key = " + key);

}

//iterating over values only

for (Integer value : ()) {

n("Value = " + value);

}

方法#3 使用迭代器 iterator

通常:

Map map = new HashMap();

Iterator<> entries = et().iterator();

while (t()) {

entry = ();

n("Key = " + () + ", Value = " + ue());

}

不寻常的: