为HashMap实现迭代器next方法 - 如何实现?

时间:2013-11-25 12:10:54

标签: java iterator hashmap next

我在为我实现的Iterator重写Next方法时遇到了一些困难。我想逐个返回元素,但我似乎无法弄清楚如何,任何人想要启发我?目前我的代码如下:

public E next() {
    if (iteratorCount == map.size()) {
        throw new NoSuchElementException();
    }

我使用ArrayList已经多次这样做了,但这似乎有很大的不同?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以按如下方式使用Iterator。你为什么要创建自己的迭代器?

    Map<String, String> map=new HashMap<>();
    Iterator valueIterator=map.values().iterator(); // iterate through values
    Iterator keyIterator=map.keySet().iterator();   // iterate through keys

    //then 
    valueIterator.next();// for next value in the map
    keyIterator.next();// for the next key in the map

现在您可以按键迭代思维导图并按如下方式返回。

     while (keyIterator.hasNext()){
        System.out.println(map.get(keyIterator.next()));
     }