Source of Bag.java


  2: import java.util.Collection;
  3: import java.util.NoSuchElementException;

  5: /**
  6:  * A data type representing an unordered collection of items, possibly 
  7:  * including duplicates.
  8:  *
  9:  * @author Mark Young (A00000000)
 10:  */
 11: public interface Bag<T> extends Collection<T> {
 12:     
 13:     /**
 14:      * Remove an item from this Bag. The item to remove is at the discretion of
 15:      * the implementation.
 16:      *
 17:      * @return an arbitrary item removed from this Bag
 18:      * @throws NoSuchElementException if the Bag was empty
 19:      */
 20:     public T remove();

 22:     /**
 23:      * Count how many times the given item appears in this Bag. An item gets
 24:      * counted if {@code Objects.equals} reports it equal to the given item.
 25:      *
 26:      * @param anItem the item to count
 27:      * @return how many copies of that item appear in this Bag
 28:      */
 29:     public int getFrequency(T anItem);

 31: }