2010-03-07 63 views
1

在使用HashMap的java中,他们使用Iterator类。但我不明白他们在HashMap中使用Iterator的目的是什么?Iterator用于java?

回答

1

迭代器应该用于从任何类型的集合中读取元素,如ArrayList,HAshMap等。 它们将帮助我们浏览Iterator对象,如果它们不在那里,我们如何从集合中检索元素?

2

对于迭代,也许?

一般来说,迭代器被用来“记住”集合中的一个点,这样就可以做一些事情来一个当前元素,然后移动迭代器到下一个元素,等等...

当你写这样

for(Value val : collection) { doSomething(val); } 

您正在使用隐式集合的迭代器代码。 这大致相当于在Map写东西像

Iterator<Value> i = collection.iterator(); 
while(i.hasNext()) 
{ 
    Value val = i.next(); 
    doSomething(val); 
} 
3

条目由键/值对。迭代器可通过所述一组密钥(Map.keySet().iterator())时,设定值(Map.values().iterator(),或两者(通过entrySet()方法和Map.Entry<K,V>接口)被用来循环

0

可以通过键迭代:

myMap.keySet().iterator(); 

或者,您可以通过值迭代:

myMap.values().iterator(); 

由HashMap中提供的这两个迭代器允许你从地图值(例如),即使你不知道的钥匙甚至得到的列表。该键。

0

迭代器提供了一种以某种顺序遍历所有元素的方法。对于HashMap不太有用,但对于TreeMap迭代器提供了一种以递增顺序遍历元素的方法。对于LinkedHashMap也是如此,可以重复它插入的方式。