双链表获得数据问题

时间:2014-09-08 20:33:30

标签: java iterator doubly-linked-list

我的doublyLinkedList getData方法遇到问题。 getData方法在我的Iterator中,但它的表现方式不存在。

    if (USE_LINKED_LIST)
    {
        for (int i = 0; i < this.linked_list.size(); i++)
        {
            Movable current = this.linked_list.getData();
            current.paint(graphics);
        }
    }
    else
    {
        for (int i = 0; i < this.array.size(); i++)
        {
            Movable current = this.array.get(i);
            current.paint(graphics);
        }
    }

正如您在此代码段中看到的那样,我试图调用this.linked_list.getData()但是它表现得像没有这样的方法。

 public AnyType getData()
    {
        //Gets the data inside the currentNode
        return currentNode.getData();
    }

然而,这是我的Iterator中的getData方法。我在下一个代码段中遇到了相同的getData()问题

if (USE_LINKED_LIST)
    {
        for(int i =0; i < this.linked_list.size(); i++ )
        {
            Movable current = this.linked_list.getData();
            current.move(frame_rate_duration);

            if(current.dead())
            {
                this.linked_list.remove(current);
                i--;
            }

        }
    }
    else
    {
        for (int i = 0; i < this.array.size(); i++)
        {
            Movable current = this.array.get(i);
            current.move(frame_rate_duration); // move for 1/100 of a second simulated time

            if (current.dead())
            {
                this.array.remove(i);
                i--; // go back one spot so we don't skip an item
            }
        }
    }

我只是想知道我是否需要改变我的for循环?或者如果我需要更改getData()方法。

1 个答案:

答案 0 :(得分:0)

this.linked_list宣称为什么?很难从你的描述中看出来,但我想知道你公开getData方法的链表类是否继承了你的没有所述方法的接口,你是通过这个接口引用链表吗?

如果是这种情况,则需要将linked_list转换为适当的类型,或者最好我假设,将其直接声明为您的类型/子类。

当然,这完全取决于你的评论&#34;它的表现就像没有这样的方法&#34;意味着您收到编译器错误,表明您的链表类中没有这样的方法。

其他可能性:

  • 您的类与另一个(可能是默认)类共享一个名称,导入错误的类。
  • 您的IDE未正确刷新/构建所有类(因此正在使用不使用getData方法的旧版本)