How can i make this Java queue display() method work with all array sizes instead of just [5]?
     // Queue.java
     // demonstrates queue
     // to run this program: C>java QueueApp

     class Queue
     {
    private int maxSize;
    private long[] queArray;
    private int front;
    private int rear;
    private int nItems;

    public Queue(int s)          // constructor
      {
      maxSize = s;
      queArray = new long[maxSize];
      front = 0;
      rear = -1;
      nItems = 0;
      }

    public void insert(long j)   
      {
      if(rear == maxSize-1)         
         rear = -1;
      queArray[++rear] = j;        
      nItems++;                    
      }


    public long remove()         
      {
      long temp = queArray[front++];
      if(front == maxSize)           
         front = 0;
      nItems--;                     
      return temp;
      }

     public long peekFront()     
      {
      return queArray[front];
      }

     public boolean isEmpty()    // true if queue is empty
      {
      return (nItems==0);
      }

    public boolean isFull()     // true if queue is full
      {
      return (nItems==maxSize);
      }

    public int size()           // number of items in queue
      {
      return nItems;
      }


    public void display()
    { int startFront = front;
  
	  for (int j = front ;j <nItems; j++ )
	  {	 
		  System.out.println(queArray[j]);
		  if (j == nItems-1 )
		  	{    	j=0;
		  			System.out.println(queArray[j]);
		  	}	
		  
		  	  
		  if (j==startFront-1)
			  return;
		  
	       }
              }
             }  

     class QueueApp
      {
            public static void main(String[] args)
      {
      Queue theQueue = new Queue(5);  // queue holds 5 items

      theQueue.insert(10);            // insert 4 items
      theQueue.insert(20);
      theQueue.insert(30);
      theQueue.insert(40);
      
      theQueue.remove();              // remove 3 items
      theQueue.remove();              //    (10, 20, 30)
      theQueue.remove();
      
      theQueue.insert(50);            // insert 4 more items
      theQueue.insert(60);            //    (wraps around)
      theQueue.insert(70);
      theQueue.insert(80);
      

      theQueue.display();
      

      while( !theQueue.isEmpty() )    // remove and display
         {                            //    all items
        long n = theQueue.remove();  // (40, 50, 60, 70, 80)
         System.out.print(n);
         System.out.print(" ");
         }
      System.out.println("");
      
      }  // end main()
    }  // end class QueueApp

Okay, this is the basic, out of the book, queue code. I am attempting to create a display method that will show the queue in order, from front to back. (This is an assignment, i know this is not practical....) If i run the program as is, it will display the queue in order from front to rear(at least that is what i believe i did). The problem i am having is if i change the nItems, it ceases to work. For example if you add the line of code, theQueue.remove(); right above the call to the display, the method ceases to work, i know it is because the front is now = to 4, instead of 3,and it will not enter the for method  which needs the front to be < nItems, 4<4 is not true so the for loop does not initiate.



How can i make this Java queue display() method work with all array sizes instead of just [5]?
===

     // Queue.java
     // demonstrates queue
     // to run this program: C>java QueueApp

     class Queue
     {
    private int maxSize;
    private long[] queArray;
    private int front;
    private int rear;
    private int nItems;

    public Queue(int s)          // constructor
      {
      maxSize = s;
      queArray = new long[maxSize];
      front = 0;
      rear = -1;
      nItems = 0;
      }

    public void insert(long j)   
      {
      if(rear == maxSize-1)         
         rear = -1;
      queArray[++rear] = j;        
      nItems++;                    
      }


    public long remove()         
      {
      long temp = queArray[front++];
      if(front == maxSize)           
         front = 0;
      nItems--;                     
      return temp;
      }

     public long peekFront()     
      {
      return queArray[front];
      }

     public boolean isEmpty()    // true if queue is empty
      {
      return (nItems==0);
      }

    public boolean isFull()     // true if queue is full
      {
      return (nItems==maxSize);
      }

    public int size()           // number of items in queue
      {
      return nItems;
      }


    public void display()
    { int startFront = front;
  
	  for (int j = front ;j <nItems; j++ )
	  {	 
		  System.out.println(queArray[j]);
		  if (j == nItems-1 )
		  	{    	j=0;
		  			System.out.println(queArray[j]);
		  	}	
		  
		  	  
		  if (j==startFront-1)
			  return;
		  
	       }
              }
             }  

     class QueueApp
      {
            public static void main(String[] args)
      {
      Queue theQueue = new Queue(5);  // queue holds 5 items

      theQueue.insert(10);            // insert 4 items
      theQueue.insert(20);
      theQueue.insert(30);
      theQueue.insert(40);
      
      theQueue.remove();              // remove 3 items
      theQueue.remove();              //    (10, 20, 30)
      theQueue.remove();
      
      theQueue.insert(50);            // insert 4 more items
      theQueue.insert(60);            //    (wraps around)
      theQueue.insert(70);
      theQueue.insert(80);
      

      theQueue.display();
      

      while( !theQueue.isEmpty() )    // remove and display
         {                            //    all items
        long n = theQueue.remove();  // (40, 50, 60, 70, 80)
         System.out.print(n);
         System.out.print(" ");
         }
      System.out.println("");
      
      }  // end main()
    }  // end class QueueApp

Okay, this is the basic, out of the book, queue code. I am attempting to create a display method that will show the queue in order, from front to back. (This is an assignment, i know this is not practical....) If i run the program as is, it will display the queue in order from front to rear(at least that is what i believe i did). The problem i am having is if i change the nItems, it ceases to work. For example if you add the line of code, theQueue.remove(); right above the call to the display, the method ceases to work, i know it is because the front is now = to 4, instead of 3,and it will not enter the for method  which needs the front to be < nItems, 4<4 is not true so the for loop does not initiate.


