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

时间:2019-01-08 11:11:44

标签: 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
}

1 个答案:

答案 0 :(得分:0)

首先,您的队列似乎实际上是一个堆栈。您正在从列表的同一末端入队和出队,使其成为LIFO,而不是FIFO。

  queueList.insertAtFront(object); 

  return queueList.removeFromFront(); 

第二,实际上您没有在任何地方指定队列的限制,因此没有什么可以阻止超过6个元素的排队。您需要在enqueue内检查是否尚未达到限制-如果尚未达到限制,则继续排队。