blob: acf1e6f9967f9b0aa14d0325ff80cd71aec8efd8 [file] [log] [blame]
package edu.uci.ics.hyracks.algebricks.common.utils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class ListSet<E> implements Set<E> {
private List<E> list = new ArrayList<E>();
public ListSet() {
}
public ListSet(Collection<? extends E> arg) {
this.addAll(arg);
}
@Override
public boolean add(E arg0) {
if (list.contains(arg0))
return false;
return list.add(arg0);
}
@Override
public boolean addAll(Collection<? extends E> arg0) {
for (E item : arg0)
if (list.contains(item))
return false;
return list.addAll(arg0);
}
@Override
public void clear() {
list.clear();
}
@Override
public boolean contains(Object arg0) {
return list.contains(arg0);
}
@Override
public boolean containsAll(Collection<?> arg0) {
return list.containsAll(arg0);
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public Iterator<E> iterator() {
return list.iterator();
}
@Override
public boolean remove(Object arg0) {
return list.remove(arg0);
}
@Override
public boolean removeAll(Collection<?> arg0) {
return list.removeAll(arg0);
}
@Override
public boolean retainAll(Collection<?> arg0) {
return list.retainAll(arg0);
}
@Override
public int size() {
return list.size();
}
@Override
public Object[] toArray() {
return list.toArray();
}
@Override
public <T> T[] toArray(T[] arg0) {
return list.toArray(arg0);
}
@SuppressWarnings("unchecked")
@Override
public boolean equals(Object arg) {
if (!(arg instanceof Set))
return false;
Set<E> set = (Set<E>) arg;
for (E item : set) {
if (!this.contains(item))
return false;
}
for (E item : this) {
if (!set.contains(item))
return false;
}
return true;
}
@Override
public String toString() {
return list.toString();
}
}