代码之家  ›  专栏  ›  技术社区  ›  Venkat

在Java中使用迭代器?

  •  1
  • Venkat  · 技术社区  · 14 年前

    在使用哈希映射的Java中,它们使用迭代器类。但我不明白他们在hashmap中使用迭代器的目的是什么?

    5 回复  |  直到 14 年前
        1
  •  1
  •   gmhk    14 年前

    迭代器应该用于从任何类型的集合(如arraylist、hashmap等)读取元素。 它们将帮助我们在迭代器对象中导航,如果没有迭代器对象,我们如何从集合中检索元素?

        2
  •  3
  •   Ash    14 年前

    A中的条目 Map 由键/值对组成。迭代器可用于循环遍历键集( Map.keySet().iterator() ),一组值( Map.values().iterator() ,或两者都有(通过 entrySet() 方法和 Map.Entry<K,V> 接口。

        3
  •  2
  •   Rotsor    14 年前

    也许是为了迭代?

    通常,迭代器用于“记住”集合中的某个点,以便可以对 现在的 元素,然后将迭代器移动到 下一个 元素等等…

    当你写一个

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

    您正在隐式地使用集合的迭代器。 大致相当于写

    Iterator<Value> i = collection.iterator();
    while(i.hasNext())
    {
        Value val = i.next();
        doSomething(val);
    }
    
        4
  •  0
  •   Paul    14 年前

    您可以遍历键:

    myMap.keySet().iterator();
    

    或者您可以遍历这些值:

    myMap.values().iterator();
    

    hashmap提供的这两个迭代器允许您从映射中获取值(例如),即使您不知道键。甚至得到钥匙清单。

        5
  •  0
  •   fastcodejava    14 年前

    迭代器提供了按某种顺序遍历所有元素的方法。不是很有用 HashMap 但为了 TreeMap 迭代器提供了一种按递增顺序遍历元素的方法。类似地 LinkedHashMap 我们可以迭代它被插入的方式。