两种方法都有相同的擦除,但覆盖了另一种方法

时间:2017-12-29 01:44:23

标签: java data-structures compiler-errors

我试图实施一个队列但我的方法"排队(E e)"给我一个错误,说该方法与Queue接口中的方法冲突,但都没有覆盖另一个。发生了什么事?

这是队列接口

public interface Queue<E> {
/**
 * Returns the number of elements in the queue.
 */
int size();
/**
 * Tests whether the queue is empty.
 */
boolean isEmpty();
/**
 * Inserts an element at the rear of the queue.
 */
void enqueue(E e);
/**
 * Returns, but does not remove, the first element of the queue (null if empty).
 */
E first();
/**
 * Removes and returns the first element of the queue (null if empty).
 */
E dequeue();
}

这是实施

/**
* Implementation of the queue ADT using a fixed-length array.
* @param <E>
*/
public class ArrayQueue<E> implements Queue {
    // instance variables
    private E[] data;
    private int f = 0;
    private int sz = 0;
    public static final int CAPACITY = 1000;

    // Constructors
    public ArrayQueue() {
        this(CAPACITY);
    }
    public ArrayQueue(int capacity) {
        data = (E[]) new Object[capacity];
    }

    // methods
    /**
    * Returns the number of elements in the queue
    */
    public int size() {
        return sz;
    }
    /**
    * Tests whether the queue is empty.
    */
    public boolean isEmpty() {
        return sz == 0;
    }
    /**
     * Inserts an element at the rear of the queue.
     */
    public void enqueue(E e) throws IllegalStateException {
        if (sz == data.length)
            throw new IllegalStateException("Queue is full");
        int avail = (f + sz) % data.length;
        data[avail] = e;
        sz++;
    }
    /**
     * Returns, but does not remove, the first element of the queue (null if empty)
     */
    public E first() {
        if (isEmpty())
            return null;
        return data[f];
    }
    /**
     * Removes and returns the first element of the queue (null if empty)
     */
    public E dequeue() {
        if (isEmpty())
            return null;
        E answer = data[f];
        data[f] = null;
        f = (f + 1) % data.length;
        sz--;
        return answer;
    }
}

我尝试删除&#34;抛出新的IllegalStateError&#34;并复制和粘贴以确保拼写是相同的。我无法弄清问题是什么。这两个代码片段直接来自一本书......

0 个答案:

没有答案