我以为我对引用类型进行了正确的实现,只显示了只能存储在队列中的6个对象,但是我遇到了一个问题,即即使我的代码消失了,我的代码也确实在队列中添加了6个以上的对象超过极限。因此,有一些很好的示例来设置队列的大小(引用类型-对象)。否则,这是到目前为止我实现队列的示例:是的,我知道我可以只使用java实用程序包,但是这违反了目标...
// Queue uses class List.
package student_finance;
public class Queue <T>
{
private List<T> queueList;
private int capacity;
// no-argument constructor
public Queue()
{
queueList = new List<>("queue");
capacity = 1;
} // end Queue no-argument constructor
// add object to queue
public void enqueue(T object)
{
queueList.insertAtFront(object);
capacity++;
} // end method enqueue
// remove object from queue
public T dequeue() throws EmptyListException
{
return queueList.removeFromFront();
} // end method dequeue
// Another way of Capacity = Capacity - 1;
public void Decrement()
{
capacity--;
}
// Returns the size of the Queue currently.
public int Size()
{
return capacity;
}
// determine if queue is empty
public boolean isEmpty()
{
return queueList.isEmpty();
} // end method isEmpty
// output queue contents
public void print()
{
queueList.print();
} // end method print
}
答案 0 :(得分:0)
首先,您的队列似乎实际上是一个堆栈。您正在从列表的同一末端入队和出队,使其成为LIFO,而不是FIFO。
queueList.insertAtFront(object);
和
return queueList.removeFromFront();
第二,实际上您没有在任何地方指定队列的限制,因此没有什么可以阻止超过6个元素的排队。您需要在enqueue
内检查是否尚未达到限制-如果尚未达到限制,则继续排队。