创建我自己的 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。或其他实现。
所以我创建了一个 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。或其他实现。