{
    Collection<E> result = useEquals() ?  new UniqueEList<E>(collection.size()) : new UniqueEList.FastCompare<E>(collection.size());
    for (E object : collection)
    {
      if (!contains(object))
      {
        result.add(object);
      }
    }
    return result;
  }