我试图通过在我自己的“MyQueue”类中实现队列接口来发展我对该接口的了解。但是,我想重写迭代器()方法。因为我不能同时实现迭代器和队列接口,所以我不知所措。
cannot convert from MyQueue<E>.QueueIterator to Iterator<E>
当我将鼠标移到单词下面的红色下划线上时
new QueueIterator()
另外,当我尝试实现我的“QueueIterator”内部类时,Eclipse给了我一个错误,
syntax error on token "class", @ expected
当我将鼠标移到单词下面的红色下划线上时
class
在下面的代码示例中,我删除了所有与我的问题无关的方法。我知道我必须实现这些方法来实现队列。我只是想把问题弄清楚。
MyQueue类:
import java.util.Collection;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Queue;
public class MyQueue<E> implements Queue {
private Node<E> first;
private int size;
public MyQueue() {
first = null;
current = null;
size = 0;
}
@Override
public Iterator<E> iterator() {
return new QueueIterator();
}
private class Node<E> {
private E data;
private Node<E> next;
Node(E data) {
this.data = data;
this.next = null;
}
private Node<E> getNext() {
return this.next;
}
private E getData() {
return this.data;
}
}
private class QueueIterator() {
private Node<E> curNode;
public QueueIterator() {
curNode = null;
}
public boolean hasNext() {
if(curNode == null && first != null) {
return true;
} else if (curNode.getNext() != null) {
return true;
} else {
return false;
}
}
public E next() {
if(curNode == null && first != null) {
curNode = first;
return curNode.getData();
}
if(!hasNext()) {
throw new NoSuchElementException();
}
curNode = curNode.getNext();
return curNode.getData();
}
}