package java.util;
import checkers.igj.quals.*;
@I
public interface Collection<E> extends @I Iterable<E> {
public abstract int size() @ReadOnly;
public abstract boolean isEmpty() @ReadOnly;
public abstract boolean contains(@ReadOnly Object a1) @ReadOnly;
public abstract @I Iterator<E> iterator() @ReadOnly;
public abstract Object[] toArray() @ReadOnly;
public abstract <T> T[] toArray(T[] a1) @ReadOnly ;
public abstract boolean add(E a1) @Mutable;
public abstract boolean remove(@ReadOnly Object a1) @Mutable;
public abstract boolean containsAll(@ReadOnly Collection<?> a1) @ReadOnly;
public abstract boolean addAll(@ReadOnly Collection<? extends E> a1) @Mutable;
public abstract boolean removeAll(@ReadOnly Collection<?> a1) @Mutable;
public abstract boolean retainAll(@ReadOnly Collection<?> a1) @Mutable;
public abstract void clear() @Mutable;
public abstract boolean equals(@ReadOnly Object a1) @ReadOnly;
public abstract int hashCode() @ReadOnly;
}