如何在Java中定义对象的队列大小(队列数据结构)



我认为我对引用类型做了正确的实现,只提供了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
}

首先,您的队列看起来实际上是一个堆栈。您从列表的同一端入队和出队,使其成为后进先出法,而不是FIFO。

queueList.insertAtFront(object); 

return queueList.removeFromFront(); 

其次,您实际上没有指定队列的限制,因此没有什么可以阻止超过6个元素排队。您需要在enqueue中检查您是否没有达到限额——如果没有,请继续排队。

最新更新