@Override
  public boolean add(@NotNull T obj) {
    T theElement = this.theElement;
    if (theElement != null) {
      if (Objects.equals(obj, theElement)) {
        return false;
      }

      super.add(this.theElement);
      this.theElement = null;
      return super.add(obj);
    }
    else if (super.isEmpty()) {
      this.theElement = obj;
      return true;
    }
    else {
      return super.add(obj);
    }
  }
@Override
  public boolean add(@NotNull T obj)