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