1: /** BagInterface.java
2: An interface that describes the operations of a bag of objects.
3: @author Frank M. Carrano
4: @version 4.0
5: */
6: public interface BagInterface<T>
7: {
8: /**
9: Add a new entry to this bag.
10: @param newEntry The object to be added as a new entry.
11: @return true if the addition is successful, or false if not.
12: */
13: public boolean add(T newEntry);
15: /**
16: Retrieve, and place into an array, all entries that are in this bag.
17: @return A newly allocated array of all the entries in the bag.
18: Note: If the bag is empty, the returned array is empty.
19: */
20: public T[] toArray();
22: /**
23: Check whether this bag is empty.
24: @return true if the bag is empty, or false if not.
25: */
26: public boolean isEmpty();
28: /**
29: Get the current number of entries in this bag.
30: @return The integer number of entries currently in the bag.
31: */
32: public int getCurrentSize();
34: /**
35: Count the number of times a given entry appears in this bag.
36: @param anEntry The entry to be counted.
37: @return The number of times anEntry appears in the bag.
38: */
39: public int getFrequencyOf(T anEntry);
41: /**
42: Test whether this bag contains a given entry.
43: @param anEntry The entry to locate.
44: @return true if the bag contains anEntry, or false if not.
45: */
46: public boolean contains(T anEntry);
48: /**
49: Remove all entries from this bag.
50: */
51: public void clear();
53: /**
54: Remove one unspecified entry from this bag, if possible.
55: @return Either the removed entry, if removal was successful, or null.
56: */
57: public T remove();
59: /**
60: Remove one occurrence of a given entry from this bag.
61: @param anEntry The entry to be removed.
62: @return true if the removal was successful, or false if not.
63: */
64: public boolean remove(T anEntry);
65: }