Map是java中的接口,Map.Entry是Map的一个内部接口。
Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。每一个Entry表示Map中的一个实体(一个key-value对)。Entry接口中有getKey(),getValue方法。
标准的Map遍历访问的方法:
Set keys = map.keySet( );
if(keys != null)
{
Iterator iterator = keys.iterator( );
while(iterator.hasNext( ))
{
Object key = iterator.next( );
Object value = map.get(key);
}
}
可以看到上面的方法是首先通过keySet()方法获得map中键的集合(set类型)。然后再通过set的迭代器来遍历获得键,通过获得的键用get方法从map中取得值。
然而引入了Map.Entry就不用这么繁琐了。
Set entries = map.entrySet( );
if(entries != null)
{
Iterator iterator = entries.iterator( );
while(iterator.hasNext( ))
{
Map.Entry entry =iterator.next( );
Object key = entry.getKey( );
Object value = entry.getValue();
}
}
解释上面的代码:首先通过map的entryset()方法获得一个set对象。该set对象包含了map所包含的的所有键值对。接下来的是就是利用该set对象的迭代器进行遍历。通过getKey(),getValue()方法分别获得键与值。