// Must compile with "javac -source 1.4 SimpleSet.java" class SimpleSetFullException extends Exception { } public class SimpleSet { final int MAX_MEMBERS = 3; Object[] content = new Object[MAX_MEMBERS]; public boolean contains(Object o) { for (int i = 0; i < MAX_MEMBERS; ++i) if (content[i] != null && content[i].equals(o)) return true; return false; } boolean add(Object o) throws SimpleSetFullException { if (contains(o)) return false; for (int i = 0; i < MAX_MEMBERS; ++i) { if (content[i] == null) { content[i] = o; return true; } } throw new SimpleSetFullException(); } public static void main(String[] args) { System.out.println("Testing SimpleSet"); SimpleSet s = new SimpleSet(); Point p1 = new Point(1, 2); Point p2 = new Point(2, 3); Point p3 = new Point(3, 4); Point p4 = new Point(4, 5); Point p5 = new Point(1, 2); assert s.contains(p1) == false; assert s.contains(p2) == false; assert s.contains(p3) == false; assert s.contains(p4) == false; assert s.contains(p5) == false; try { assert s.add(p1) == true; assert s.add(p1) == false; } catch (SimpleSetFullException ssfe) { assert false; } assert s.contains(p1) == true; assert s.contains(p2) == false; assert s.contains(p3) == false; assert s.contains(p4) == false; assert s.contains(p5) == true; try { assert s.add(p2) == true; assert s.add(p2) == false; } catch (SimpleSetFullException ssfe) { assert false; } assert s.contains(p1) == true; assert s.contains(p2) == true; assert s.contains(p3) == false; assert s.contains(p4) == false; assert s.contains(p5) == true; try { assert s.add(p3) == true; assert s.add(p3) == false; } catch (SimpleSetFullException ssfe) { assert false; } assert s.contains(p1) == true; assert s.contains(p2) == true; assert s.contains(p3) == true; assert s.contains(p4) == false; assert s.contains(p5) == true; try { s.add(p4); assert false; } catch (SimpleSetFullException ssfe) { } assert s.contains(p1) == true; assert s.contains(p2) == true; assert s.contains(p3) == true; assert s.contains(p4) == false; assert s.contains(p5) == true; System.out.println("SimpleSet ok"); } } // class SimpleSet