Note: the code shown on this page does not follow the commenting guidelines (or guidelines for whitespace) for CS 367; this page is meant to outline the Bag ADT (with additional information given in lecture).
import java.util.*;
public interface BagADT<E> {
void add(E item);
E remove() throws NoSuchElementException;
boolean isEmpty();
Iterator<E> iterator();
}
import java.util.*;
public class ArrayBag<E> implements BagADT<E> {
// *** Data members (fields) ***
private E[] items;
private int numItems;
private static final int INIT_SIZE = 100;
// *** Constructor ***
public ArrayBag() {
items = (E[])(new Object[INIT_SIZE]);
numItems = 0;
}
// *** Bag ADT methods ***
public void add(E item) {
if (item == null) {
throw new IllegalArgumentException("Bag does not allow null elements");
}
if (numItems == items.length) { expandArray(); }
items[numItems] = item;
numItems++;
}
public E remove() throws NoSuchElementException {
if (numItems < 1) { throw new NoSuchElementException(); }
numItems--;
return items[numItems];
}
public boolean isEmpty() { return numItems == 0; }
public Iterator<E> iterator() {
}
// *** Private methods ***
private void expandArray() { ... }
}