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

标签 java iterator

我正在学习使用迭代器接口(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/

相关文章:

java - 线程 "main"java.lang.NoClassDefFoundError : org/apache/hadoop/mapreduce/RecordReader 中的异常

c# - C# 中的生成器?

java - Java 中迭代器因 1 次混淆而关闭

java - 迭代器不循环

java - 五个连续数字的最大乘积

Java wait notify - notify 通知所有线程

java - 如何将基于回调的 API 转换为基于 Observable 的 API?

java - 如何开发非 UI 客户端 GWT 库?

list - Struts2 迭代器标签 - 从对象列表中访问特定对象值

c++ - 迭代并删除 std::set 中的元素