@Override
  public boolean retainAll(@NotNull Collection<?> c) {
    while (true) {
      Object[] elements = get();
      Object[] newElements = createArrayRetainAll(elements, c);
      if (newElements == null) return false;
      if (replaceArray(elements, newElements)) return true;
    }
  }
@Override
  public boolean retainAll(@NotNull Collection<?> c)