boolean (@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); } }