【发布时间】:2012-10-07 20:08:04
【问题描述】:
我已经编写了一个 ObjectQueue 类来处理对象,但我也希望能够处理 LinkedList 类型,这样我将拥有一个使用链表的对象队列。这甚至可能吗?
基本上我想要类似的东西
ArrayList<LinkedList <Job> > data
除了:ObjectQueue<LinkedList <Job> > data
如何修改我的课程:
public class ObjectQueue {
private Object[] item;
private int front;
private int rear;
private int size;
public ObjectQueue() {
size = 100;
item = new Object[size];
front = size-1;
rear = size-1;
}
public ObjectQueue(int max) {
size = max;
item = new Object[size];
front = size-1;
rear = size-1;
}
public boolean isEmpty() {
return front == rear;
}
public boolean isFull() {
return rear == size-1 ? front == 0 : front == rear+1;
}
public void clear() {
front = size-1;
rear = size-1;
}
public void insert(Object x) {
if (isFull()) {
System.out.println("Insert Runtime Error: Queue Overflow");
System.exit(1);
}
if (rear == size-1) // or rear = (rear+1) % size;
rear = 0;
else
rear++;
item[rear] = x;
}
public Object remove() {
if (isEmpty()) {
System.out.println("Remove Runtime Error: Queue Underflow");
System.exit(1);
}
if (front == size-1) // or front = (front+1) % size;
front = 0;
else
front++;
return item[front];
}
public Object query() {
if (isEmpty()) {
System.out.println("Query Runtime Error: Queue Underflow");
System.exit(1);
}
if (front == size-1)
return item[0];
else
return item[front+1];
}
}
【问题讨论】:
-
你的问题不清楚。您想用 LinkedList 替换数组,还是想指定 ObjectQueue 中的对象类型,以便它们专门为 LinkedList?因为你似乎反对“对象”和“LinkedLists”……
-
我想我想要做的是将对象队列存储在链表中,可能有不止一种方法可以做到这一点,但我想以不同的新方式使用我的 ObjectQueue 类...
-
既然LinkedList 实现了Queue(JDK 中也有其他实现),你真的需要你的ObjectQueue 吗?如果它完全在那里,它的功能集似乎是实际队列的一个子集。
标签: java object linked-list queue