繁体   English   中英

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

[英]How do I define the Queue size of Objects in Java (Queue Data Structure)

我以为我对引用类型进行了正确的实现,只显示了只能存储在队列中的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
}

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

  queueList.insertAtFront(object); 

  return queueList.removeFromFront(); 

其次,您实际上没有在任何地方指定队列的限制,因此没有什么可以阻止超过6个元素的排队。 您需要在入enqueue范围内进行检查,以确保未达到限制-如果尚未达到,请继续入队。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM