@Override public int size() { compact(); return list.size(); }
@Override public Iterator<T> iterator() { compact(); return new Itr(); }
@Override public boolean add( final T element ) { compact(); return list.add( soft ? new Soft<T>( element, queue, list.size() ) : new Weak<T>( element, queue, list.size() ) ); }