无法调用我的对象的iterator()方法

时间:2015-09-07 12:28:22

标签: java iterator

我正在学习使用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);
        }
   ...

1 个答案:

答案 0 :(得分:2)

Tunaki回答了这个问题:

删除new中的ListIterator li = new A.iterator();