我正在学习使用迭代器接口(interface),但我陷入困境,因为当我在代码块中使用 A.iterator() 调用 LinkedList A 的 iterator() 方法时,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);
}
...
最佳答案
图纳基回答了问题:
删除ListIterator li = new A.iterator();
中的new
。
关于java - 无法调用我的对象的 iterator() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438784/