This assignment is to be done by a pair of students. I suggest that you have the student who feels least confident be the one who does the "driving"; then it will be easier to make sure that both of you understand what you are doing.
If the number of students in class today is odd, I will ask for a "solo" volunteer.
A "fixed length queue" is a very simple abstract data type. It behaves (sort of) like a queue that holds Objects. When constructed, it is given a fixed capacity, and it initially contains no objects.Whenever we add an object to the queue, 
   if the queue is already filled to capacity
       the object that was the head of the queue before the addition
       is "pushed out", and what was the second object 
       in the queue becomes the new head. 
There is no explicit remove operation. Perhaps it should be there, but it is not part of this assignment due to time constraints.
The only other public operation besides add is toString, which simply performs each object's toString method, and concatenates all of the resulting strings (in queue order of course), separated by a space.
Thus you only have three public methods to implement: 
        constructor, add, toString. 
A FixedLengthQueue should be implemented using an array, so only a fixed amount of space is ever allocated for a given queue. The add method should be a constant-time operation (i.e. the running time for this method should not depend on the capacity of the queue, as evidenced by no loops or recursive calls in its code). Hint: treat the array as a circle. The % operator may be helpful here.
public
 
class 
TestFixedLengthQueue {
 
  public
static 
void main(String[] 
args) {
    // Tests standard behavior
   
FixedLengthQueue q = new 
FixedLengthQueue(3);
   
String testString = "I heard it through 
the grapevine.";
    String[] splitString = testString.split(" 
");
    for 
(int i = 0; i 
< splitString.length; i++) {
      q.add(splitString[i]);
    System.out.println(q);
    } 
    // Tests undersized queue:
    try 
{
      q = new 
FixedLengthQueue(0);
    } catch 
(IllegalArgumentException e) {
      System.out.println("Exception 
occurred as expected.");
    }
  }
}
 
/* Correct output:
I
I heard
I heard it
heard it through
it through the
through the grapevine.
Exception occurred as expected.
*/
The Process
	- Check out the  FixedLengthQueue project from your repository. 
	
- Create a new class called FixedLengthQueue with no default constructor 
	and no main method. 
	
- Write the code for FixedLengthQueue.java. 
	
- Run the
	
	TestFixedLengthQueue.java file.
- Compile, run, debug, ... 
	
- Add code to the constructor to prohibit construction of a 
	FixedLengthQueue whose capacity is less than 1. 
- Add code to TestFixedLengthQueue.java to test the restriction on 
	Queue capacity.