java.util.HashMap<K,V>
- 类型参数:
- K - 此映射所维护的键的类型
- V - 所映射值的类型
由于HashMap没有实现iterable 接口所以我们不能直接用 迭代for循环 来 迭代 HashMap 。
Set<
Map.Entry<
K,
V>>
entrySet()
返回此映射所包含的映射关系的 Set 视图 ,将HashMap中的键值对 映射到类型化Set中,映射后的Set只是一个HashMap的视图,我们不能对视图进行add操作,由于Set实现了Iterable接口 所以可以进行迭代操作。这个方法返回的collection集合的元素类型就是键值对
public static interface Map.Entry<K,V>
映射项(键-值对)。Map.entrySet 方法返回映射的 collection 视图,其中的元素属于此类。获得映射项引用的唯一
方法是通过此 collection 视图的迭代器来实现。这些 Map.Entry 对象
仅 在迭代期间有效;更确切地讲,如果在迭代器返回项之后修改了底层映射,则某些映射项的行为是不确定的,除了通过 setValue 在映射项上执行操作之外。
下面是代码示例:
HashMap<String, Integer> map=new HashMap<String,Integer>(); //定义范型化 HashMap
int i=1;
map.put("First", i++) ;
map.put("Second", i++) ;
map.put("Third", i++) ;
Set<Map.Entry<String,Integer>> entryset=map.entrySet() ; //获得HashMap的映射视图 返回一个范型化的 Set对象 Map.Entry<String,Integer>> 就是一个键值对
for(Map.Entry<String, Integer> m:entryset) //对Set进行迭代操作
{
System.out.println(m.getKey() + " : " +m.getValue() );
}