我们在写程序时,一般要用到key-value时喜欢用HashMap来保存数据,当我们要取数据的时候我们就会用到iterator(迭代器),目前有两种比较常用的方法来取数据:
1)
<span style="white-space:pre"> </span>Map map = new HashMap();
Iterator iterator = map.entrySet().iterator();
if(iterator.hasNext()){
Map.Entry entry = (Entry) iterator.next();
Object key = entry.getKey();
Object value = entry.getValue();
}
2)
<span style="white-space:pre"> </span>Map map = new HashMap();
Iterator iterator = map.keySet().iterator();
if(iterator.hasNext()){
Object key = iterator.next();
Object value = map.get(key);
}
下面我们通过源代码来看一下这两种方法的区别:
首先我们先看一下第一种方法的源代码:
map.entrySet():
public Set<Map.Entry<K,V>> entrySet() {
Set<Map.Entry<K,V>> es;
return (es = entrySet) == null ? (