创建我自己的 Deque 接口和 Deque Class

Creating my own Deque Interface and Deque Class

所以我创建了一个 Deque 接口,但我不确定如何实例化我的 Deque,我想使用 ArrayDeque,但我相信 ArrayDeque 是另一个接口,我正在尝试使用我自己的界面。

public interface DequeInterface {
 public void addFront(Object o);
 public void addRead(Object o);
 public Object removeFront();
 public Object removeRear();

}

public class Deque implements DequeInterface {

}

来自评论:

They do not require specific implementations in the methods, only a rough outline of what I would do.

假设您想使用循环缓冲区来实现(参见Wikipedia),这里是一个开始:

public class Deque implements DequeInterface {
    private Object[] array;
    private int      frontIndex;
    private Object[] rearIndex;
    public Deque() {
        // Allocate array of 100
        // Initialize front index and rear index
    }
    public void addFront(Object o) {
        if (array full) {
            // Increase array size
        }
        array[frontIndex--] = o;
        // Handle frontIndex circling around
    }
    public void addRead(Object o) {
        // TODO
    }
    public Object removeFront() {
        // TODO
    }
    public Object removeRear() {
        // TODO
    }
}

当然,如果你选择用Linked List来实现,那轮廓就不同了。或多个 sub-arrays。或其他实现。