public class Array {
	public Array(int capacity) {
		arr = new Object[capacity];
	}
	public Array() {this(DEFAULT_CAPACITY);}

	private int capacity() {return arr.length;}
	int size() {return size;}

	void add(Object val) throws Exception {
		if (size >= capacity()) throw new Exception("capacity exceeded");
		arr[size++] = val;
	}

	boolean contains(Object val) {
		for (int i = 0; i < size; i++)
			if (arr[i].equals(val)) return true;
		return false;
	}

	public Object get(int pos) {return arr[pos];}
	public void set(int pos, Object val) {arr[pos] = val;}

	public String toString() {
		String result = "(" + size + "/" + capacity() + ")" + "{";
		for (int i = 0; i < size; i++)
			result += arr[i] + (i < size-1 ? ", " : "");
		result += "}";
		return result;
	}

	private Object [] arr;		// capacity is arr.length
	private int size = 0;

	static final int DEFAULT_CAPACITY = 100;
}
