Source of ArrayBag1.java


  1: /**    A class of bags whose entries are stored in a fixed-size array.    INITIAL, INCOMPLETE DEFINITION; no security checks    @version 5.0    @author Frank M. Carrano*/public final class ArrayBag1<T> implements BagInterface<T>{        private final T[] bag;        private int numberOfEntries;        private static final int DEFAULT_CAPACITY = 25;        /** Creates an empty bag whose capacity is 25. */        public ArrayBag1()         {                this(DEFAULT_CAPACITY);        } // end default constructor        /** Creates an empty bag having a given capacity.       @param desiredCapacity  The integer capacity desired. */        public ArrayBag1(int desiredCapacity)        {      // The cast is safe because the new array contains null entries      @SuppressWarnings("unchecked")      T[] tempBag = (T[])new Object[desiredCapacity]; // Unchecked cast      bag = tempBag;      numberOfEntries = 0;        } // end constructor        /** Adds a new entry to this bag.       @param newEntry  The object to be added as a new entry.       @return  True if the addition is successful, or false if not. */        public boolean add(T newEntry)        {      boolean result = true;      if (isArrayFull())      {         result = false;      }      else      {  // Assertion: result is true here         bag[numberOfEntries] = newEntry;         numberOfEntries++;      } // end if            return result;        } // end add           /** Retrieves all entries that are in this bag.       @return  A newly allocated array of all the entries in this bag. */        public T[] toArray()          {      // The cast is safe because the new array contains null entries.      @SuppressWarnings("unchecked")      T[] result = (T[])new Object[numberOfEntries]; // Unchecked cast            for (int index = 0; index < numberOfEntries; index++)      {         result[index] = bag[index];      } // end for            return result;      // Note: The body of this method could consist of one return statement,      // if you call Arrays.copyOf        } // end toArray           // Returns true if the array bag is full, or false if not.        private boolean isArrayFull()        {                return numberOfEntries >= bag.length;        } // end isArrayFull   // STUBS:        /** Sees whether this bag is empty.            @return  True if this bag is empty, or false if not */        public boolean isEmpty()         {                return false; //STUB        } // end isEmpty        /** Gets the number of entries currently in this bag.            @return  The integer number of entries currently in this bag */        public int getCurrentSize()         {                return -1; // STUB        } // end getCurrentSize        /** Removes one unspecified entry from this bag, if possible.       @return  Either the removed entry, if the removal                was successful, or null */        public T remove()   {      return null; // STUB   } // end remove           /** Removes one occurrence of a given entry from this bag.       @param anEntry  The entry to be removed       @return  True if the removal was successful, or false otherwise */   public boolean remove(T anEntry)   {      return false; // STUB   } // end remove                /** Removes all entries from this bag. */        public void clear()   {      // STUB   } // end clear                /** Counts the number of times a given entry appears in this bag.                 @param anEntry  The entry to be counted                 @return  The number of times anEntry appears in the bag */        public int getFrequencyOf(T anEntry)   {      return 0; // STUB   } // end getFrequencyOf                /** Tests whether this bag contains a given entry.                 @param anEntry  The entry to locate                 @return  True if this bag contains anEntry, or false otherwise */        public boolean contains(T anEntry)   {      return false; // STUB   } // end contains} // end ArrayBag1