|          
 import java.io.Serializable;
 import java.util.*;
 
 public class ArraySet extends AbstractSet
 implements Cloneable, Serializable {
 
 private ArrayList list;
 
 public ArraySet() {
 list = new ArrayList();
 }
 
 public ArraySet(Collection col) {
 list = new ArrayList();
 
 // No need to check for dups if col is a set
 Iterator itor = col.iterator();
 if (col instanceof Set) {
 while (itor.hasNext()) {
 list.add(itor.next());
 }
 } else {
 while(itor.hasNext()) {
 add(itor.next());
 }
 }
 }
 
 public Iterator iterator() {
 return list.iterator();
 }
 
 public int size() {
 return list.size();
 }
 
 public boolean add(Object element) {
 boolean modified;
 if (modified = !list.contains(element)) {
 list.add(element);
 }
 return modified;
 }
 
 public boolean remove(Object element) {
 return list.remove(element);
 }
 
 public boolean isEmpty() {
 return list.isEmpty();
 }
 
 public boolean contains(Object element) {
 return list.contains(element);
 }
 
 public void clear() {
 list.clear();
 }
 
 public Object clone() {
 try {
 ArraySet newSet = (ArraySet)super.clone();
 newSet.list = (ArrayList)list.clone();
 return newSet;
 } catch (CloneNotSupportedException e) {
 throw new InternalError();
 }
 }
 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 |