Java - 使用带数组的迭代器

时间:2015-10-02 23:19:36

标签: java arrays iterator

我是整个" iterator"的新手。 Java中的概念,需要帮助在我的代码中实现它。这是代码:

class IteratorExample {

int tstArray [];

IteratorExample(){

}

public void addNum(int num){

   tstArray[0] = num; //And yes, I can only add one number at the moment, but it
                      is not what I want to focus on right now.
}


public Iterator<Integer> innerIterator(){
    return new methodIterator();
}

 class methodIterator implements Iterator<Integer> {
    public int index;
    private methodIterator(){
        index = 0;
    }

    public boolean hasNext(){
        return index < tstArray.length;

    }
    public Integer next(){
        return;
    }


  }    

public static void main(String[] args){
    IteratorExample sample = new IteratorExample();
  test(sample);
}

public static void test(IteratorExample arr){
 arr.addNum(1);
 system.out.print(arr);
}

}

这是到目前为止编写的代码。我想这样做,所以我可以使用addNum()方法向数组中添加一个数字,然后使用system.print从main显示它(是的,我知道我需要一个toString方法才能使数字到来而不是内存地址,将在稍后实施,现在我只专注于让它工作。)

1 个答案:

答案 0 :(得分:2)

要使Iterator工作,next()方法可以

public Integer next(){
    return tstArray[index++];
}

如果索引太大,则抛出ArrayIndexOutOfBoundsException,而Iterator的规范说它应该抛出NoSuchElementException。为了做得好,你可以写

public Integer next(){
    if (index < tstArray.length)
        return tstArray[index++];
    throw new NoSuchElementException();
}