2012-03-10 101 views
1

当我尝试返回新的MyIterator()时出现错误,我不确定如何处理MyIterator构造函数(必须根据启动节点参数定义迭代器)。任何想法如何解决这个问题?我知道如何实现下一个和hasNext。定义迭代器/迭代器构造函数时出错?

我想我解决了它....谢谢!

+2

与它提供起始节点..? – Jeffrey 2012-03-10 20:41:58

回答

2

您正在为您的迭代器定义一个构造函数,即MyIterator(MyListNode<E> start)。从您的代码中,很明显,MyListNode<E> start参数丢失。

我的意思是,在这条线:

return new MyIterator(); 

...你需要一个引用传递到列表中的第一个节点,这样的事情:

return new MyIterator(firstNode); // replace firstNode with the actual value 
+0

我没有在构造函数中编写代码....我不知道该如何处理它。我怎样处理参数... – user1261445 2012-03-10 20:53:46

+0

当您调用'return new MyIterator();'时,您必须将参数作为参数传递给列表的第一个节点,因为这就是您定义构造函数的方式。如何处理迭代器中的第一个节点?这是一个不同的问题。提示:您需要将其存储在属性中,并确保相应地执行'hasNext'和'next'。 – 2012-03-10 20:57:46