Java队列实现中的逐个错误

Java队列实现中的逐个错误,java,queue,Java,Queue,我是一个从头开始队列实现的初级程序员,由于某种原因,我犯了一个错误。这是我的班级: class Queue { // pointer to first node in stack public Node oldest; public Node youngest; public int queueSize = 0; // constructor public Queue(){ oldest = null; youngest = nu

我是一个从头开始队列实现的初级程序员,由于某种原因,我犯了一个错误。这是我的班级:

class Queue
{
   // pointer to first node in stack
   public Node oldest;
   public Node youngest;
   public int queueSize = 0;

   // constructor
   public Queue(){
       oldest = null;
       youngest = null;
       queueSize = 0;
}

   public boolean isEmpty() {
       return oldest == null;
   }

   public boolean add(Node newNode){ 

   if(isEmpty()){
       oldest = newNode;
   }else{
       newNode.next = youngest;
       oldest.next = youngest;
       youngest = newNode;
       }

       return true;
   }


   public Node remove(){
       Node temp;
       temp = oldest;
       if( oldest != null){
           oldest = oldest.next;
           temp.next = null;
       }
       queueSize--;
       return temp;
   }

   public void showQueue(){
       Node p;    
       for(p = oldest; p != null; p = p.next){
         p.toString();
       }
   }
}
如果我使用循环填充队列,然后执行showQueue(),我总是比应该的少一个。例如,这是我的主要观点:

      // build the queue
      for (int k = 0; k < 5; k++)
      {
         node1 = new Node();
         queue2.add(node1);
      }

      //show the stack
      queue2.showQueue();
//构建队列
对于(int k=0;k<5;k++)
{
node1=新节点();
队列2.添加(节点1);
}
//显示堆栈
queue2.showQueue();
给出了结果

(节点)(节点)(节点)(节点)(节点)

或者只有四个节点。这是怎么回事


提前谢谢

我想我明白了。在这篇文章的“排队”方法中使用了逻辑,并且能够消除错误:仍然不理解我的代码为什么不能工作,所以我希望得到任何解释!我不知道最小的应该是什么。您可能不应该有此字段。队列大小是递减的,但从不递增。既然最旧的是队列中的第一个节点,您需要一条注释来说明这一点,为什么不将其命名为
firstNode