public void add(int newPosition, T newEntry)
{
   checkInitialization();
   if ((newPosition >= 1) && (newPosition <= numberOfEntries + 1))
   {
      if (newPosition <= numberOfEntries)
         makeRoom(newPosition);
      list[newPosition] = newEntry;
      numberOfEntries++;
      ensureCapacity(); // Ensure enough room for next add
   }
   else
      throw new IndexOutOfBoundsException(
                "Given position of add's new entry is out of bounds.");
} // end add
private void makeRoom(int newPosition)
{
   int newIndex = newPosition;
   int lastIndex = numberOfEntries;
   for (int index = lastIndex; index >= newIndex; index--)
      list[index + 1] = list[index];
}  // end makeRoom

// Version 4.0
