/** * Add the given element to this set, replacing existing one if it is already contained. * <p> * Note that this method has a worst-case linear complexity. * * @param element The element to be added. * @return A new set containing all elements of this set and also {@code element}. */ @Override public LinkedHashSet<T> add(T element) { return contains(element) ? this : new LinkedHashSet<>(map.put(element, element)); }
@Override public LinkedHashSet<T> replace(T currentElement, T newElement) { if (!Objects.equals(currentElement, newElement) && contains(currentElement)) { final Tuple2<T, Object> currentPair = Tuple.of(currentElement, currentElement); final Tuple2<T, Object> newPair = Tuple.of(newElement, newElement); final LinkedHashMap<T, Object> newMap = map.replace(currentPair, newPair); return new LinkedHashSet<>(newMap); } else { return this; } }
/** * Add the given element to this set, replacing existing one if it is already contained. * <p> * Note that this method has a worst-case linear complexity. * * @param element The element to be added. * @return A new set containing all elements of this set and also {@code element}. */ @Override public LinkedHashSet<T> add(T element) { return contains(element) ? this : new LinkedHashSet<>(map.put(element, element)); }
@Override public LinkedHashSet<T> replace(T currentElement, T newElement) { if (!Objects.equals(currentElement, newElement) && contains(currentElement)) { final Tuple2<T, Object> currentPair = Tuple.of(currentElement, currentElement); final Tuple2<T, Object> newPair = Tuple.of(newElement, newElement); final LinkedHashMap<T, Object> newMap = map.replace(currentPair, newPair); return new LinkedHashSet<>(newMap); } else { return this; } }