在使用HashMap的java中,他们使用的是Iterator类。但我无法理解他们在HashMap中使用Iterator的目的是什么?
答案 0 :(得分:3)
Map
中的条目由键/值对组成。迭代器可用于遍历一组键(Map.keySet().iterator()
),一组值(Map.values().iterator()
或两者(通过entrySet()
方法和Map.Entry<K,V>
接口)
答案 1 :(得分:2)
对于迭代,也许?
通常,迭代器用于“记住”集合中的某个点,以便您可以对当前元素执行某些操作,然后将迭代器移动到 next 元素,等等......
当你编写像
这样的代码时for(Value val : collection) { doSomething(val); }
您隐式使用集合的迭代器。 它大致相当于编写像
这样的东西Iterator<Value> i = collection.iterator();
while(i.hasNext())
{
Value val = i.next();
doSomething(val);
}
答案 2 :(得分:1)
迭代器应该用于读取任何类型的集合中的元素,如ArrayList,HAshMap等。 它们将帮助我们浏览Iterator对象,如果它们不存在,我们如何从集合中检索元素?
答案 3 :(得分:0)
您可以遍历键:
myMap.keySet().iterator();
或者你可以遍历这些值:
myMap.values().iterator();
HashMap提供的这两个迭代器允许您从地图中获取值(例如),即使您不知道密钥。甚至可以获得密钥列表。
答案 4 :(得分:0)
迭代器提供了一种以某种顺序遍历所有元素的方法。对HashMap
不是很有用,但对于TreeMap
,迭代器提供了一种以递增顺序遍历元素的方法。类似地,对于LinkedHashMap
,可以迭代它的插入方式。