1: /** 2: A class of bags whose entries are stored in a fixed-size array. 3: INITIAL, INCOMPLETE DEFINITION; no security checks 4: @author Frank M. Carrano 5: @version 4.0 6: */ 7: public final class ArrayBag<T> implements BagInterface<T> 8: { 9: private final T[] bag; 10: private int numberOfEntries; 11: private static final int DEFAULT_CAPACITY = 25; 12: 13: /** Creates an empty bag whose capacity is 25. */ 14: public ArrayBag() 15: { 16: this(DEFAULT_CAPACITY); 17: } // end default constructor 18: 19: /** Creates an empty bag having a given capacity. 20: @param capacity The integer capacity desired. */ 21: public ArrayBag(int capacity) 22: { 23: // The cast is safe because the new array contains null entries. 24: @SuppressWarnings("unchecked") 25: T[] tempBag = (T[])new Object[desiredCapacity]; // Unchecked cast 26: bag = tempBag; 27: numberOfEntries = 0; 28: } // end constructor 29: 30: /** Adds a new entry to this bag. 31: @param newEntry The object to be added as a new entry. 32: @return True if the addition is successful, or false if not. */ 33: public boolean add(T newEntry) 34: { 35: // To be defined 36: } // end add 37: 38: /** Retrieves all entries that are in this bag. 39: @return A newly allocated array of all the entries in this bag. */ 40: public T[] toArray() 41: { 42: // To be defined 43: } // end toArray 44: 45: // Returns true if the array bag is full, or false if not. 46: private boolean isArrayFull() 47: { 48: // To be defined 49: } // end isArrayFull 50: 51: /** Sees whether this bag is empty. 52: @return True if the bag is empty, or false if not. */ 53: public boolean isEmpty() 54: { 55: // To be defined 56: } // end add 57: 58: /** Adds a new entry to this bag. 59: @param newEntry The object to be added as a new entry. 60: @return True if the addition is successful, or false if not. */ 61: public boolean add(T newEntry) 62: { 63: // To be defined 64: } // end add 65: 66: /** Removes one unspecified entry from this bag, if possible. 67: @return Either the removed entry, if the removal. 68: was successful, or null. */ 69: public T remove() 70: { 71: // To be defined 72: } // end remove 73: 74: /** Removes one occurrence of a given entry from this bag. 75: @param anEntry The entry to be removed. 76: @return True if the removal was successful, or false if not. */ 77: public boolean remove(T anEntry) 78: { 79: // To be defined 80: } // end remove 81: 82: /** Removes all entries from this bag. */ 83: public void clear() 84: { 85: // To be defined 86: } // end clear 87: 88: /** Counts the number of times a given entry appears in this bag. 89: @param anEntry The entry to be counted. 90: @return The number of times anEntry appears in the bag. */ 91: public int getFrequencyOf(T anEntry) 92: { 93: // To be defined 94: } // end getFrequencyOf 95: 96: /** Tests whether this bag contains a given entry. 97: @param anEntry The entry to locate. 98: @return True if the bag contains anEntry, or false if not. */ 99: public boolean contains(T anEntry) 100: { 101: // To be defined 102: } // end contains 103: } // end ArrayBag 104: 105: 106: 107: