/** * An interface that describes the operations of a bag of objects */ publicinterfaceBagInterface<T> { /** * Gets the current number of entries in this bag. * @return The integer number of entries currently in the bag. */ publicintgetCurrentSize();
/** * Sees whether this bag is empty. * @return true if the bag is empty, or false if not. */ publicbooleanisEmpty();
/** * Adds a new entry to this bag. * @param newEntry The objects to be added as a new entry * @return True if the addition is successful, or false if not. */ publicbooleanadd(T newEntry);
/** * Removes all entries from this bag. */ publicvoidclear();
/** * Removes one unspecified entry from this bag, if possible. * @return Either the removed entry, if the removal was successful, or null. */ public T remove();
/** * Remove one occurrence of a given entry from this bag, if possible. * @param anEntry The entry to be removed. * @return True if the removal was successful, or false if not. */ public T remove(T anEntry);
/** * 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. */ publicintgetFrequencyOf(T anEntry);
/** * Tests whether this bag contains a given entry * @param anEntry The entry to locate. * @return True if the bag contains an Entry, or false if not. */ publicbooleancontains(T anEntry);
/** * Retrieves all entries that are in this bag * @return A newly allocated array of all the entries in the bag. Note: If the bag is empty, the returned array is empty. */ public T[] toArray(); }