| 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(); |
| } |
| |
| } |