package uebung09.collection; import java.util.Iterator; class BigSet implements Set{ private T item; private Set rest; public BigSet(T item, Set rest){ //TODO this.item = item; this.rest = rest; } @Override public Iterator iterator() { return new Iterator() { private boolean returned = false; private Iterator restI = rest.iterator(); @Override public boolean hasNext() { return restI.hasNext(); } @Override public T next() { if (!returned) { returned = true; return item; } else { return restI.next(); } } }; } @Override public int size() { int count = 1; count += rest.size(); return count; } @Override public boolean isEmpty() { return false; } @Override public boolean contains(Object el) { if(el == item) { return true; } else { return rest.contains(el); } } @Override public Set union(Set other) { if (other == EmptySet.getInstance()) { return this; } else if (other instanceof SingeltonSet && !contains(other.iterator().next())) { return new BigSet(other.iterator().next(), this); } else { return new BigSet(item, rest.union(other)); } } @Override public Set add(T element) { if (contains(element)) { return this; } else { return new BigSet(element, this); } } @Override public Set intersection(Set other) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'intersection'"); } @Override public boolean subsetOf(Set other) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'subsetOf'"); } }