我是整个" 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方法才能使数字到来而不是内存地址,将在稍后实施,现在我只专注于让它工作。)
答案 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();
}