public final boolean isEmpty() {
    if (this == EMPTY) return true;
    E single = asElement();
    if (single != null) return false;
    Collection<E> col = asCollection();
    if (col != null) {
      return col.isEmpty();
    }
    return !iterator().hasNext();
  }
public final boolean isEmpty()