Java 在链表类中实现迭代器接口
出于某种原因,我在这里得到了一个无限循环,我不知道为什么。我在我的main方法中运行了这个函数,它一直在打印132,我不确定出了什么问题。让迭代器退出循环。每次循环完成一个循环时,您都会得到一个新的迭代器。因此,只有第一个元素被一次又一次地打印。由于同一元素被一次又一次地打印,有两种可能发生Java 在链表类中实现迭代器接口,java,iterator,linked-list,Java,Iterator,Linked List,出于某种原因,我在这里得到了一个无限循环,我不知道为什么。我在我的main方法中运行了这个函数,它一直在打印132,我不确定出了什么问题。让迭代器退出循环。每次循环完成一个循环时,您都会得到一个新的迭代器。因此,只有第一个元素被一次又一次地打印。由于同一元素被一次又一次地打印,有两种可能发生 迭代器没有移动,并且指向同一个元素,即使在调用next之后也是如此 链表是循环链表,迭代器自动移动,无需调用next。所以迭代器移动到下一个节点(value=133),然后调用next将把它移动到同一个元素
我希望问题在于链表代码。因此,请给出链表代码。这将有助于找出错误。您是否也可以为链表添加代码,以及如何创建迭代器以获得更清晰的信息?
public boolean hasNext() {
// TODO Auto-generated method stub
return current != null;
}
public T next() throws NoSuchElementException {
if (!hasNext())
throw new NoSuchElementException();
else
prev = current;
current = current.next;
return (T) prev.data;
}
//This is my linked list
f.add(132);
f.add(133);
//while loop I am using in regular main method to test
while(f.iterator().hasNext()){
System.out.println(f.iterator().next());
}