1
我正在學習使用迭代器接口,但我被卡住了,因爲當我調用LinkedList A的iterator()方法時,Eclipse顯示「無法解析爲某個類型」與A.iterator()在下面的代碼塊中。我搜索了,但我不明白爲什麼會發生這種情況,以及我如何稱呼A.iterator()。這是我嘗試調用A.iterator()的代碼 - 方法:無法調用我的對象的迭代器()方法
import abstractDataTypes.LinkedList.*;
public class LinkedListIteratorTest {
public static void main(String [] args) {
LinkedList<Integer> A = new LinkedList<Integer>();
A.insert(1);
A.insert(3);
A.insert(1);
A.insert(7);
A.insert(6);
ListIterator li = new A.iterator();
for(;li.hasNext();) {
System.out.println(li.next());
}
}
}
這是我的LinkedList類,其中迭代符()定義的代碼部分:
import java.util.Iterator;
public class LinkedList<T> implements Iterable<T> {
ListNode<T> head;
ListNode<T> tail;
public LinkedList() {
head = null;
tail = null;
}
public Iterator<T> iterator() {
return new ListIterator<T>(head);
}
...
的ListIterator()被定義爲鏈表級內的一類:
...
class ListIterator<T> implements Iterator<T> {
ListNode<T> current;
ListIterator(ListNode<T> head) {
current = head;
}
public boolean hasNext() {
return (current != null);
}
...
發佈準確完整的錯誤消息,並告訴我們它引用了哪一行。 –
在ListIterator li = new A.iterator();中刪除'new'。你沒有實例化一個對象,而是獲得一個對象。 – Tunaki
YESS謝謝刪除「新」是對的!我怎樣才能關閉這個問題? –