/*
Output:
[V, M, N]
* */
import java.io.Serializable;
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
public class MainClass {
public static void main(String args[]) {
Set map = new ArraySet();
map.add("V");
map.add("M");
map.add("N");
System.out.println(map);
}
}
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();
}
}
}
|