我正在学习使用Iterator接口,但是当我在代码块中使用A.iterator()调用LinkedList A的iterator()方法时,Eclipse因为Eclipse显示“无法解析为类型”而被卡住了下面。我搜索过,但我不知道为什么会发生这种情况,以及如何调用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类中代码的一部分,其中定义了interator():
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()被定义为LinkedList类中的一个类:
...
class ListIterator<T> implements Iterator<T> {
ListNode<T> current;
ListIterator(ListNode<T> head) {
current = head;
}
public boolean hasNext() {
return (current != null);
}
...
答案 0 :(得分:2)
Tunaki回答了这个问题:
删除new
中的ListIterator li = new A.iterator();
。