// // // first version, no hashCode() or equals() method // // import java.util.*; public final class Set1 { private Vector items; public Set1() { items = new Vector();} public int cardinality() { return items.size(); } public boolean isEmptySet() { return items.isEmpty();} public boolean addItem(Object o) { if (items.indexOf(o) == -1) { items.add(o); return true; } else return false; } public boolean containsItem(Object o) { return (items.indexOf(o) != -1); } public boolean removeItem(Object o) { int index = items.indexOf(o); if (index == -1) return false; items.remove(index); return true; } public static void main(String[] args) { int n = 10; int different = -1; if (args.length >= 1) n = Integer.parseInt(args[0]); if (args.length >= 2) different = Integer.parseInt(args[1]); long time0 = System.currentTimeMillis(); Set1 s0 = makeSet(n); Set1 s1 = makeSet(n); if (different > -1) { s1.removeItem(new Integer(different)); s1.addItem(new Integer(-1)); } long time1 = System.currentTimeMillis(); boolean eq0 = s0.equals(s1); boolean eq1 = s1.equals(s0); long time2 = System.currentTimeMillis(); System.out.println("s0.equals(s1) = " + eq0); System.out.println("s1.equals(s0) = " + eq1); System.out.println("s0.hashCode() = " + s0.hashCode()); System.out.println("s1.hashCode() = " + s1.hashCode()); System.out.println("t0 = " + (time1-time0) + " / t1 = " + (time2-time1)); } public static Set1 makeSet(int max) { Set1 s = new Set1(); for(int i = 0; i