Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 双链接列表getData问题_Java_Iterator_Doubly Linked List - Fatal编程技术网

Java 双链接列表getData问题

Java 双链接列表getData问题,java,iterator,doubly-linked-list,Java,Iterator,Doubly Linked List,我的双链接列表getData方法有问题。getData方法在我的迭代器中,但它的行为就像该方法一样不存在 if (USE_LINKED_LIST) { for (int i = 0; i < this.linked_list.size(); i++) { Movable current = this.linked_list.getData(); current.paint(graphics);

我的双链接列表getData方法有问题。getData方法在我的迭代器中,但它的行为就像该方法一样不存在

    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);
        }
    }
然而,这是迭代器中的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
            }
        }
    }
if(使用链接列表)
{
对于(int i=0;i

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

这个链表声明为什么?很难从您的描述中分辨出来,但是我想知道,您的链表类是否公开了
getData
方法,继承了您的接口,而该接口没有该方法,并且您正在通过该接口引用链表

如果是这种情况,那么您需要将您的链接列表转换为适当的类型,或者我认为最好是将其直接声明为您的类型/子类

当然,这都是基于您的注释“它的行为就像没有这样的方法一样”,这意味着您收到一个编译器错误,表明在您的链表类中没有这样的方法

其他可能性:

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

您的代码中有太多内容脱离了上下文,无法判断发生了什么。如果您不知道为什么可以在某些地方使用该方法,而在其他地方不使用该方法,您可能需要查看“它的行为就像没有这样的方法”——如果是这种情况,您将在编译时出错。这到底是什么意思?这个链表声明为什么?我想知道,公开getData方法的链表类是否继承了没有该方法的接口,并且您是通过该接口引用链表的?您说“getData方法在我的迭代器中”,但从外观上看,您使用的不是迭代器,而是列表本身。至少在我看来,这个链表就是这样的。我希望类似于
Iterator it=this.linked\u list.Iterator()
,然后是
it.hasNext()
it.next()
等常见调用。
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
            }
        }
    }