第一类:
Map map=new HashMap (;
Iterator iter=map.entrySet ().iterator );
wile(Iter.Hasnext () ) ) )。
映射. entry entry=(映射. entry ) iter.next );
Object key=entry.getKey (;
Object val=entry.getValue (;
}效率很高,今后请务必使用这种方式!
第二类:
Map map=new HashMap (;
Iterator iter=map.keySet ().iterator );
wile(Iter.Hasnext () ) ) )。
Object key=iter.next (;
对象val=map.get (key;
}效率不高,今后请尽量不要使用!
对keySet实际扫描2次,1次转移到iterator,1次从hashmap中取出对key的value。 而且,entryset只是第一次扫描,他把key和value放进了entry,所以就快了。
1 .映射的四种遍历方式
这里只以HashMap为例简要介绍各种扫描例子,每一个优劣都在正文之后分析得出结论。
(1) for each map.entrySet ) ) ) )。
Java1234 5映射字符串,字符串map=new hashmap String,string (; for (输入字符串,字符串输入: map.entryset () ) {输入.获取}; entry . getValue (; }
(2)显示调用map.entrySet ) )的集合迭代器
Java 123456 iterator map.entry string,string iterator=map.entryset (.iterator ); while(iterator.Hasnext () ) { Map . Entry String,String entry=iterator . next; entry . getKey (; entry . getValue (; }
)3) for each map.keySet ) ),调用get获取
Java1234映射字符串,String map=new HashMap String,String (; for(stringkey:map.keyset () map.get ); }
(4) for each map.entrySet )、map.entrySet ) )用临时变量保存
Java 1 2 3 4 5 Set Entry String,String entrySet=map . entrySet (; for (输入字符串,字符串输入: entryset ) { entry . getKey ); entry . getValue (; }