Java 的队列迭代器

Queue Iterator with Java

我正在尝试使用队列来存储一定数量的数据,并且我希望能够遍历它。我创建了一个特定类型的新队列,但迭代器出现问题。每当我调用 iterator.next() 时,我都会遇到类型不匹配的情况。 "Can't convert from void to motionEvent"。 motionEvent 是我存储的类型。任何帮助将非常感激。这是代码片段。

    Queue<motionEvent> queue = new LinkedList<motionEvent>();

    ....

    Iterator it = (Iterator) queue.iterator();

    for(int i = 0; i < 5; i++)
    {
        motionEvent temp = it.next();
     //THis is where I am having the problem with mismatch type

    }

这里是 motionEvent Class:

public class motionEvent
{
private long time;
private int positionX;
private int positionY;

public motionEvent()
{
    time = 0;
    positionX = 0;
    positionY = 0;
}

public motionEvent(long time_in, int positionX_in, int positionY_in)
{
    time = time_in;

    positionX = positionX_in;
    positionY = positionY_in;
}

public long getTime()
{
    return time;
}

public int[] getPosition()
{
    int[] temp = new int[]{positionX, positionY};
    return temp;
}


}

通常情况下,不同类型的项目不能直接分配给另一个。也无法分配voids,尝试寻找迭代的方法。此外,您的 motionEvent 是其自身的类型,因此必须间接添加它并抛出一个集合或转换。

您不应转换为原始类型:

Iterator<MotionEvent> it = queue.iterator();