2012-03-10 5 views
1

Я получаю сообщение об ошибке при попытке вернуть новый MyIterator(), и я не уверен, что делать с конструктором MyIterator (необходимо определить итератор на основе параметра начального узла). Любая идея, как это исправить? Я знаю, как реализовать следующий и hasNext.Ошибка при определении конструктора итератора итератора?

Я думаю, что решил. Спасибо.

+2

предоставляют ему начальный узел ..? – Jeffrey

ответ

2

Вы определяете один конструктор для своего итератора, MyIterator(MyListNode<E> start). Из вашего кода ясно, что аргумент MyListNode<E> start отсутствует.

То, что я имею в виду, в этой строке:

return new MyIterator(); 

... вам нужно передать ссылку на первый узел в списке, что-то вроде этого:

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

Я не написал код в конструкторе .... Я не знаю, что с ним делать. Что мне делать с параметром ... – user1261445

+0

Когда вы вызываете 'return new MyIterator();' вы ДОЛЖНЫ передать в качестве аргумента ссылку на первый узел списка, потому что именно так вы определили конструктор. Что делать с первым узлом внутри Итератора? это другой вопрос. Подсказка: вам нужно сохранить его в атрибуте и убедиться, что он реализует 'hasNext' и' next' соответственно. –

Смежные вопросы